别人做的一个安卓/ios的壳子,使用codova提供H5访问原生的能力,通过webview 直接注入codova方法到window对象中。非uniapp项目的H5页面都可以通过window.cordova.exec的方式访问原生的方法,唯独uniapp开发H5页面中无法通过window获取到cordova对象,竟然提示cordova对象是undefined。扒拉了一圈官方文档没有找到解决办法,咱的问答社区也是半死不活没人回复,只能感慨uniapp的坑真不小啊
f***@163.com
- 发布:2022-06-01 15:22
- 更新:2024-03-22 14:46
- 阅读:1770
这个uni-app的原生支持毫无关系。你这是用uni-app做了一个h5页面,用cordova打包。
这种做法首先就不推荐,你应该用uni-app直接打包app,体验比cordova好非常多。
其次uni-app开发的web页面,都可以在chrome下调试,cordova也是有debug方式的,虽然不太好用,但你得用cordova的remote debug看看问题出在哪里了。这和uni-app的h5也没什么关系
实现了,在index.html页面写一个函数,在vue页面中调用这个函数就行了.唯一的缺点是调用的cordova的函数得作为参数传过去,所以在vue中一个事件得写俩函数,或者难看一点写在括号里
<script src="./cordova.js"></script>
<script>
function cordovaFunc(func){func();}
</script>
methods: {
//调用Cordova
dyCordova(){
cordovaFunc(this.ceshi)
},
ceshi() {
"这里写调用cordova的函数比如"
androidJs.callPhone(11111111111)
}
}
f***@163.com (作者)
很多年前的壳子用的cordova框架,壳子只是通过webview打开uniapp开发的H5页面链接,那为啥非uniapp的H5页面可以获取到壳子挂在在window下的cordova对象呢,所以我怀疑和uniapp的某方面机制有关系
2022-06-02 17:27