vue如何实现与安卓、IOS交互的方法
这篇文章主要介绍了vue如何实现与安卓、IOS交互的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
创新互联建站专注于中大型企业的网站建设、成都做网站和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户近千家,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注高端网站设计和互联网程序开发,在前进的路上,与客户一起成长!
Vue的优点
Vue具体轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快等优势,Vue中页面使用的是局部刷新,不用每次跳转页面都要请求所有数据和dom,可以大大提升访问速度和用户体验。
方案背景
IOS用的是jsBridge插件实现调用、传参、回调的
安卓是在window挂载方法和挂载回调的
IOS实现方案
调用原生方法封装如下
function setupWebViewJavascriptBridge (callback) { if (window.WebViewJavascriptBridge) { return callback(window.WebViewJavascriptBridge) } if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback) } window.WVJBCallbacks = [callback] let WVJBIframe = document.createElement('iframe') WVJBIframe.style.display = 'none' WVJBIframe.src = 'https://__bridge_loaded__' document.documentElement.appendChild(WVJBIframe) setTimeout(() => { document.documentElement.removeChild(WVJBIframe) }, 0) } function callhandler (name, data, callback) { setupWebViewJavascriptBridge(function (bridge) { bridge.callHandler(name, data, callback) }) }
实际调用如下
callhandler(functionName: string, params: object, res => {})
注册方法给原生
registerhandler (name, callback) { // 安卓 window[name] = res => { let data = JSON.parse(res) callback(data) } // IOS setupWebViewJavascriptBridge(function (bridge) { bridge.registerHandler(name, function (data, responseCallback) { callback(data, responseCallback) }) }) }
安卓实现方案
调用原生方法
window.HTTP_TEST.functionName()
定义回调方法/注册方法给原生
window['functionName'] = res => {}
特殊说明
安卓在交互中的参数传递只能支持string类型,对象参数要转成string传递
因为安卓的回调方法名是固定的,同一方法同时请求两次以上时,有可能只得到一次回调。如果用随机数处理就会不断地在window上挂载新的函数,调用次数过多可能会出问题,所以目前是避免同时请求同一方法来解决的。如果有需求避免不了,那还是要用随机数解决。
感谢你能够认真阅读完这篇文章,希望小编分享的“vue如何实现与安卓、IOS交互的方法”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!
名称栏目:vue如何实现与安卓、IOS交互的方法
标题路径:http://azwzsj.com/article/jscspc.html