qq2251553669
qq2251553669
  • 发布:2020-02-18 06:19
  • 更新:2020-02-18 06:19
  • 阅读:92

第三方js能不能通过webview,在安卓和iOS的app端运行?

分类:uni-app

首先在下主要是做web端的,对Vue有所了解,但是对安卓和iOS不甚了解。才疏学浅,请多指教。
我已经使用uni-app的uni.request写好请求登录之类的接口,一切正常。但是目前在集成第三方组件上产生了疑问。

需要集成的是一个第三方的webrtc组件,它的官方提供了h5的js文件、android sdk、iOS sdk。没有小程序sdk,当然我也没有小程序端的需求。我想通过仅仅使用h5的js,在安卓和iOS端运行,这样的话,就能绕过安卓和iOS的开发盲区,实现快速开发app了。
我的问题是:第三方js能不能通过webview,在安卓和iOS的app端运行?

我也进行了实践。具体操作情况如下,我已经将这个第三方js,import到vue文件中,并且写了一些methods,在onload里直接开始运行。在web端可以正常使用。(部分代码已省略)

    import example from '@/components/example/example.js'
methods: {  
joinChannel(channelName, key) {...}  
}
onLoad() {this.client = example.createClient({  
                mode: "live",  
                codec: "vp8"  
            });  
this.joinChannel(this.channelName, this.appid);  
}

但是使用真机调试的时候,无论安卓和iOS端的app端调试都显示
ReferenceError: Can't find variable: window
控制台显示:
TypeError: Cannot read property 'AudioContext' of undefined
报错出在引入的example.js上,这我倒是可以理解,毕竟app端是没有window对象的。

但是就很麻烦了,我目前纠结的在于,我认为可以在代码层面,通过一些方法调用浏览器,让app端直接支持调用js。大概就是套壳浏览器的感觉。我查询了uni-app官网文档,好像没有查到关于这个方法?
官网更多的是说,需要把第三方的安卓和iOS SDK做成插件,在uni-app里通过uni.requireNativePlugin(PluginName)来调用插件,看了下教程,感觉做插件的路上依然绕不过学习安卓和iOS,一定有很多坑的。而且这样也让uni-app宣传的「一套代码全端开发」优势不那么明显了。
我的想法是否可行?app端是否支持调用js?必须做成插件才能在uni-app里调用吗?

2020-02-18 06:19 分享
已邀请:

要回复问题请先登录注册