uni-app集成外部网页(React)调查
uni-app集成外部网页(React)调查
-
能否共享缓存?
- webView使用操作系统相应的原生浏览器,是能够储存缓存的,只要不清除,重新打开app浏览器缓存也是还在的。
- 至于多个webView之间的缓存能不能通用,由于官方文档没有相关说明,以目前的实验来看应该与一般浏览器一样,适用于同站点下的缓存访问规则。
-
能否缓存网页源文件?
- 官方无相关说明。
- GitHub上有几个相关issue(2019年)但是无人回应。
- 估计是不行。
-
能否调用平台接口?
-
能调用的平台接口只有如下接口:
- uni.navigateTo(OBJECT):保留当前页面,跳转到应用内的某个页面。
- uni.redirectTo(OBJECT):关闭当前页面,跳转到应用内的某个页面。
- uni.reLaunch(OBJECT):关闭所有页面,打开到应用内的某个页面。
- uni.switchTab(OBJECT):跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
- uni.navigateBack(OBJECT):关闭当前页面,返回上一页面或多级页面。可通过
getCurrentPages()
获取当前的页面栈,决定需要返回几层。 - uni.postMessage(OBJECT):向应用发送消息。
- uni.getEnv(CALLBACK):获取当前环境。
-
无法调用其它接口解决方案:
- 先在uni-app中调用,再通过webView url参数形式传入。
-
-
uni-app能调用的接口:
- uni-app能直接调用大部分硬件接口,但是有一些必须用原生代码写插件(比如在ios中想要获取WiFi路由器mac地址)
-
关于消息推送:
- 获取clientId(后简称cid)后通过vebView url以查询参数的形式传入React,登录时将cid传入后台即可。
- 当前问题:如果做了推送,那肯定是要有快速跳转的功能,但是现在整个结构都在viewWeb中,如果一定要跳转,只能是将要跳转的参数以webView url的形式传入。
- 改进方案:路由导航用uni-app重新开发,只是单个画面用webView显示。