hybrid App中js调用native接口原理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hybrid App中js调用native接口原理相关的知识,希望对你有一定的参考价值。
参考技术A 移动网络的发展推动移动APP盛行,目前市场上APP开发技术的类型主要有三种,native开发、hybrid开发、RN/weex开发。本文主要讲述hybrid APP中js调用native原理。hybrid APP就是利用android/ios上webview加载web网页,其实就是相当于用native做了一个外壳,然后里面加载网页。那站在业务层面上,只要没有太依赖性能,都能满足需求,那这里面有可能会用到一些硬件功能,比如:相机、位置等,这时就必须调用native。
1.js 调用 native,Android里面主要通过WebViewClient.shouldOverrideUrlLoading方法拦截指定格式的URL,通过拦截特定URL和获取对应的参数,来调用native对应的功能。这里我们主要通过cordova插件,来做例子说明
上面我们看到cordova的初始化,这里面主要对回调callback进行定义,js调用native之后,native处理完结果,将结果返回js,就是通过callback完成。
3.构造链接,并发送链接pokeNative
这里我们看到调用native可以通过iframe和通过XHR完成。
这就是js调用native的方式,native完成处理之后,通过webView.addjavascriptInterface调用js中挂载在window对象的方法,这是一个统一的回调nativeCallback ,通过callbackID识别出本次结果需要回调js中的哪个function。然后本次交互就全部完成了
总结一下,主要同理是通过native两个方法:addJavascriptInterface和shouldOverrideUrlLoading完成js和native交互。
以上是关于hybrid App中js调用native接口原理的主要内容,如果未能解决你的问题,请参考以下文章