当前位置: 首页 > news >正文

制作网页网站用的是什么家装设计师培训要多久

制作网页网站用的是什么,家装设计师培训要多久,it培训机构,电子商务网站难做吗关键词:h5离线包加载、h5离线包更新、沙箱 在上一篇文章中,我们已经介绍了如何将 rawfile 资源文件中的文件数据拷贝到沙箱下,那么该篇文章将介绍如何加载该沙箱目录下的文件资源(此处以打包后的web资源为例)&#xf…

关键词:h5离线包加载、h5离线包更新、沙箱

在上一篇文章中,我们已经介绍了如何将 rawfile 资源文件中的文件数据拷贝到沙箱下,那么该篇文章将介绍如何加载该沙箱目录下的文件资源(此处以打包后的web资源为例),用webview加载出页面,并实现在线获取新包更新web页面的效果。

如何将rawfile中文件拷贝到沙箱中,可参考我的上一篇文章:HarmonyOS/OpenHarmony 如何将rawfile中文件复制到沙箱中

该片文章首先需要介绍我这边准备的 ohosInteractive.zip 离线包,该离线包中仅存放了一个简易的html文件

1. 解压文件

解压zip文件到 webSources 下,因为涉及到文件加载需要一段时间,所以此处的解压建议放到ability生命周期中进行,不建议在页面需要加载时进行解压。

let boxPath = getContext().getApplicationContext().filesDir
let unzipPath = boxPath + "/webSources"
let zipPath = boxPath + "/webSources/ohosInteractive.zip"zlib.decompressFile(zipPath, unzipPath, {}, (err, data) => {if (err != null) {console.error(err.message)} else {console.log("luvi > decompress succeed")fs.unlinkSync(zipPath);}})

2. webview 加载页面

此处的 webUrl 是我们在上一步解压后的文件所在位置,不要写错了。因为当前 web 为加载沙箱文件,所以需要开启 fileAccess 属性,不然 h5 将无法加载。

当文件解压完后,页面就会加载出来了,若不能加载,可连接设备点击 IDE 右下角的 Device File Browser 文件管理,查看文件拷贝和解压是否正确,有些页面需要设置 domStorageAccess 属性才可以加载,此处也不能遗忘。

@Entry
@Component
export struct WebPage {webController: WebviewController = new webview.WebviewController()webUrl: string = "file://" + getContext().getApplicationContext().filesDir + "/webSources/index.html";build() {Column() {Web({ src: this.webUrl, controller: this.webController }).fileAccess(true).domStorageAccess(true).zoomAccess(false).width("100%").height("100%")}}
}

3. h5离线包更新

在第一步时,我们就已经把文件管理在了沙箱中,沙箱中的文件我们可以进行任意操作,如删除或替换,那么我们可以利用该特性进行资源包的在线下载并解压替换,即可实现h5页面的更新。

该 updateResources 方法自行修改按业务调用即可,此处需要注意的是,在app中本地 rawfile 已经存在离线包拷贝解压后需要进行标记或自行检查文件的存在与否,避免在线的离线包下载替换完成后下次启动app再一次把 rawfile 中的文件拷贝到了沙箱中,那么最新的在线包始终不会被更新进沙箱。

3.1 使用 request.downloadFile 下载离线包并解压
updateResources() {// 下载最新离线包let boxPath = getContext().getApplicationContext().filesDirlet unzipPath = boxPath + "/webSources"let zipPath = boxPath + "/webSources/ohosInteractive.zip"try {// 需要手动将 url 替换为真实服务器的 HTTP 协议地址,此处我就不给我的服务器了request.downloadFile(getContext(), {url: "https://xxxxxx/ohosInteractive.zip",filePath: zipPath}).then((data: request.DownloadTask) => {let downloadTask: request.DownloadTask = data;downloadTask.on("complete", () => {// 解压下载的新资源包zlib.decompressFile(zipPath, unzipPath, {}, (err, data) => {if (err != null) {console.error("luvi > " + err.message)} else {console.log("luvi > decompress succeed")// 解压成功后删除源zip包fs.unlinkSync(zipPath);}})console.log("luvi > 新离线包下载成功!")promptAction.showToast({message: "luvi > 新离线包下载成功!重启展示新页面"})})}).catch((err: BusinessError) => {console.error(`luvi> Failed to request the download. Code: ${err.code}, message: ${err.message}`);})} catch (err) {console.error(`luvi > Failed to request the download. err: ${JSON.stringify(err)}`);}}

师傅领进门,修行靠个人,本文章只介绍核心功能,因业务功能而异,所以不提供完整代码了。

http://www.yayakq.cn/news/497921/

相关文章:

  • 旅游电子商务网站建设规划书旅游宣传推广方案
  • 路桥区商用营销型网站建设广西建设工程招标网
  • 响应式网站有哪些杭州网站建设文章
  • 全国建设网站海南网站建设推广公司哪家好
  • 网站服务器租用和自己搭建的区别英文网站设计制作
  • 嘉兴网站建设外包公司高明专业网站建设哪家好
  • 石家庄网站建设制作北京工地网站建设
  • 网站为何不显示百度商桥对话框北京移动端网站优化
  • 沧浪企业建设网站公司会员管理系统登录
  • 网站开发技术有哪些惠州企业网站设计
  • 长乐福州网站建设重庆建网站城选快忻科技悉心
  • 有一个域名做网站福建建站公司
  • 如何做旅游计划的网站太原做网站公司5大建站服务
  • 点餐系统网站建设站长推荐网站
  • 如何做关于网站推广的培训龙口网站制作公司
  • 贵州建设厅网站办事大厅网站做相片
  • 茶文化网站建设内容八年级做网站
  • 嘉兴丝绸大厦做网站的公司营销策划方案范文免费下载
  • 买链接做网站 利润高吗网站12栅格系统怎么做
  • 开发外包公司企业网站排名提升软件优化
  • 菠菜导航网站可以做黑龙江网站备案查询
  • 做百度网站的公司哪家好室内设计师培训网
  • 网站开发结束语建设摩托车官网中国
  • 辽宁seo站内优化海南州商城网站建设
  • 内蒙古住房和城乡建设部网站永久免费域名申请教程
  • 非标自动化东莞网站建设自学网站开发流程
  • 手机网站建设的价格cad图库大全素材免费下载
  • 网站设计点评自学做网站要学什么
  • 南京做网站多少钱阜城网站建设
  • 郑州区块链数字钱包网站开发方案php网站开发系统