Cordova加载远程网页调用原生api
本文最后更新于:2023年8月15日 下午
Cordova加载远程网页调用原生api
截止目前为止,普遍的做法都是使用静态资源h5做好功能之后放在本地cordova项目里运行,那么既然是h5,是不是也可以放在服务器上,这样就实现了动态更新app,而不必使用codepush了。
调研了一番,有三个问题需要解决:
ios上架审核问题
每次都是加载远程网页,这可不一定能过审啊,如何审核人员测试你断网情况下的报错情况,页面出不来,那大概率是过不了,解决办法吗,可能是必须有个静态的首页还是放在cordova的安装包里面,后面再加其他策略跳转到你网页的地址,好多不可描述的app不都是这么做的吗。这里引申出另一个问题,远程加载的网页遇到网络波动肯定没有本地的效果好,调优是另一个问题了。
新开一个webview窗口
在主体webview中加一个iframe加载远程地址不就行了?但是需要使用postmessage这样的跨页面通讯,费劲的一笔,而且iframe的页面事件穿透比如手指滑动事件就会有很多奇奇怪怪的问题,我吃过亏也不想再用这种方式,还不如新开一个webview呢,使用 cordova-plugin-inappbrowser就可以了
调用原生api
这个需求不容易搞定,因为inappbrowser的实现默认是不允许使用cordova的任何资源,只是提供用新webview实例来加载一个纯的网页,所以需要对inAPPbrowser进行改造,简单来说就是注入cordova.js,这段我没试验,懒得弄了,应该是可以的,看下面的链接吧
参考文章: