一、引入 JSBridge
JSBridge 主要是给 JavaScript 提供调用 Native 功能的接口,让混合开发中的前端部分可以方便地使用 Native 的功能(例如:通讯录、蓝牙)。
而且 JSBridge 的功能不止调用 Native 功能这么简单宽泛。实际上,JSBridge 就像其名称中的Bridge的意义一样,是 Native 和非 Native 之间的桥梁,它的核心是构建 Native 和非 Native 间消息通信的通道,而且这个通信的通道是双向的。
二、JS调用Android原生方法
1、增加Javascript的接口:把安卓的相关方法的接口赋值到一个特殊的js对象中,继而赋值给window对象中,比如下面代码块 项目中的PosObj
private void initJs() {//增加Javascript的接口
webView.addJavascriptInterface(new MyJSI(this), "PosObj");
}
2、创建共js调用的方法 一定要加@JavascriptInterface注解
@JavascriptInterface
public String invokeFun(String funName, String json) {
}
//通用
@JavascriptInterface
public void close() {
//js调用完以后的逻辑
}
3、示例:封装获取版本号的方法
文章来源:https://www.toymoban.com/news/detail-514723.html
public String getVersionName(Context context) {
PackageManager packageManager = context.getPackageManager();
// getPackageName()是你当前类的包名,0代表是获取版本信息
PackageInfo packInfo = null;
String version = "";
try {
packInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
version = packInfo.versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return version;
}
4、js调用Android方法()//将handleAndroid方法放到需要调用的地方
文章来源地址https://www.toymoban.com/news/detail-514723.html
function handleAndroid(){
// 由于对象映射,所以调用PosObj对象等于调用Android映射的对象
//getVersionName是Android的方法
window.PosObj.invokeFun('getVersionName', '')
}
到了这里,关于JS如何调用Android原生方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!