Vue打包的静态文件,在IOS中引入,不能返回上一页的

在使用Vue开发的前端应用被引入到iOS的WKWebView时,作者遇到了返回上一页功能失效的问题。尝试了多种web标准的返回方法如$router.back()、window.history.back()等均无效。问题根源在于使用`webview.loadHTMLString`加载静态文件导致无访问历史。通过改用`URLRequest`加载本地HTML文件,成功实现了返回上一页的功能。此解决方案对于在WKWebView中集成Vue应用具有参考价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前需求是: 使用Vue开发前端界面,然后把打包出来的静态文件引入到IOS中 WKWebView展现


遇到问题是:界面展现没有问题,但是无法使用,以下各种方法返回上一页,以下列出的还不是全部,已经尝试了所有web 支持的写法,都不行
 

let that = this

that.$router.back()
window.history.back()
that.$router.go(-1);
window.history.go(-1);

只有 Vue 的 that.$router.push 方法可以跳转页面,但是这不符合需求,如果用push实现跳转的话,遇到需要返回 -2 级页面的时候,没法操作,除非自己实现 访问记录列表的缓存

经过2天的尝试,发现是因为加载静态文件的方式不对,之前使用的是
 

 webview.loadHTMLString

这种方式加载的HTML资源,不会存在web访问记录,导致返回上一页的方法失效,后来尝试使用request url的方式后,成功返回上一页
 

let pathString = Bundle.main.path(forResource: "index", ofType: "html")! as String
        
let webUrl = URL.init(fileURLWithPath: pathString)

let request = URLRequest(url: webUrl)

webview.load(request)

### UniApp 开发的小程序在 iOS 设备上真机运行时页面加载速度慢的解决方案 #### 一、检查网络请求 确保所有的 API 请求都是必要的,并且尽可能减少不必要的请求。对于图片资源,可以考虑使用懒加载技术来提高性能[^1]。 ```javascript // 使用 vue-lazyload 插件实现图片懒加载 import Vue from 'vue'; import VueLazyload from 'vue-lazyload'; Vue.use(VueLazyload, { loading: '/static/loading.gif', // 设置默认loading图 }); ``` #### 二、优化组件渲染逻辑 避免在一个视图中一次性渲染过多的数据项;如果列表数据量较大,则应该采用分页加载的方式逐步展示内容。另外还需注意防止频繁触发 DOM 更新操作,比如通过 `v-if` 控制元素显隐时要谨慎处理条件判断语句[^2]。 #### 三、压缩打包体积 利用 Webpack 的 Tree Shaking 功能去除未使用的代码模块,减小最终构建产物大小。同时开启 Gzip 压缩服务端响应体也能有效降低传输时间开销。 #### 四、启用缓存机制 合理设置 HTTP 缓存策略(如 ETag 和 Cache-Control 头部字段),让浏览器能够更好地复用已下载过的静态文件版本。还可以借助 LocalStorage 或者 IndexDB 存储部分常用但不易变动的信息以便快速读取访问。 #### 五、精简依赖库 移除项目里不再需要第三方类库引用,特别是那些体积庞大却功能单一插件。针对特定平台定制化引入所需的功能片段而非整个框架包也是不错的选择之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值