需求:

  1. 打开一个配置好的网页
  2. 要求APP能够和网页进行通信。
  3. 能够对加载的网页资源等进行拦截控制。
  4. 要求webview(浏览器)实现历史记录返回,同时能够直接关闭功能。

我尝试了多种webview 的使用方案,最终都无法完全实现功能。

【一】 vue页面 + webview 组件
这个方案 使用 uni.navigateBack 就直接操作了当前页面的webview组件的返回,无法直接控制APP的路由返回。导致无法实现直接关闭功能。
同时无法实现网页资源拦截控制

【二】 vue页面 + plus.webview.create

无法实现 APP 和网页 通信

【三】 nvue页面 + webview 组件

无法实现 APP 和网页 通信 网页资源拦截控制,通过 ref 也不能获取到完整weview实例对象(这个我不太确定,但是多数plus.weview api 无法使用)。

【四】 nvue页面 + plus.webview.create

和 vue 页面情况一样

https://ask.dcloud.net.cn/question/91867 plus.webview.create 无法实现通信 这里已经有解释了。

所以 我认为目前能满足需求的方案就是第一个方案,

但是急需解决 uni.navigateBack 能够直接操作app的路由的问题。

https://ask.dcloud.net.cn/question/93286 这个问题我已经发布了好几天了,但是无人问津啊~~~

真心的请教各位大佬,这个有解决方案吗?


·回复

uni.navigateBack 你是在app下的vue文件里面执行的么? 还有拦截资源啥的 用h5+ 随随便便创建一个 weview 就能拦截 何必你说的那么麻烦


·回复

部分功能我写过,
给你个思路吧
用你的 【二】 vue页面 + plus.webview.create
在 + uni.$on uni.$emit + plus.webview.evalJS


·回复

直接关闭这个我遇到过,你这需要获取到页面层级进行回退次数就好了.

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Scroll Up