Android中 Js 扩展及交互

网友投稿 801 2022-08-25

Android中 js 扩展及交互

Android中 Js 扩展及交互

Android中的JS扩展有2中方式:

1.利用webkit提供的js扩展接口在 java层扩展,直接由app实现

优点:容易

缺点:跟app耦合,其他app不能使用该js扩展

2.利用npapi在cpp层扩展

优点:所有app都能共享该扩展

缺点:相对有难度

引擎主要分为3大模块

1.webkit                          平台相关代码,是对以下2模块的平台port封装

2.webcore                       实现layout排版;渲染;当检测html中含有js脚本时交由jscore处理

3.javascriptcore/v8         解析js脚本,并执行

jscore跟webcore的交互 主要跟binding有关系。数据类型有map映射,一般的js扩展不涉及jscore的改动

通过Android webview实现与javascript函数相互调用

publicclass WebViewDemo extends Activity { private WebView mWebView; private Handler mHandler = new Handler(); publicvoid onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.webviewdemo); mWebView = (WebView) findViewById(R.id.webview); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); //webview支持javascript mWebView.addJavascriptInterface(new Object() { //添加javascript可调用的接口 publicvoid clickOnAndroid() { mHandler.post(new Runnable() { public void run() { mWebView.loadUrl("javascript:wave()"); } }); } }, "demo"); mWebView.loadUrl("file:///android_asset/demo.html"); //调用的网页 }}

demo.html:

//调用activity的clickOnAndroid()函数
Click me!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:web idl 接口定义语言数据类型与 C++绑定关系
下一篇:版本控制-搭建git服务器(git实现版本控制)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~