Android中 Js 扩展及交互
来源:互联网 发布:python socket通信框架 编辑:程序博客网 时间:2024/06/06 16:52
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函数相互调用
- public
- class WebViewDemo extends Activity {
- private WebView mWebView;
- private Handler mHandler = new Handler();
- public
- void 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可调用的接口
- public
- void clickOnAndroid() {
- mHandler.post(new Runnable() {
- public void run() {
- mWebView.loadUrl("javascript:wave()");
- }
- });
- }
- }, "demo");
- mWebView.loadUrl("file:///android_asset/demo.html"); //调用的网页
- }
- }
- </pre><pre name="code" class="java"><pre name="code" class="html">
- demo.html:
- <html>
- <script language="javascript">
- function wave() { //准备在activity里调用的函数
- document.getElementById("droid").src="android_waving.png";
- }
- </script>
- <body>
- <a onClick="window.demo.clickOnAndroid()"> //调用activity的clickOnAndroid()函数
- <imgidimgid="droid"src="android_normal.png"/><br>Click me!
- </a>
- </body>
- l>
- Android中 Js 扩展及交互
- Android中 Js 扩展及交互
- Android中webview和js之间的交互及注意事项
- Android中webview和js之间的交互及注意事项
- Android中webview和js之间的交互及注意事项
- Android WebView中JS交互
- Android WebView属性及Js交互总结
- Android Webview优化及与Js交互
- Android实现js及webview交互之在html页面中调用系统摄像头
- Android实现js及webview交互之在html页面中调用系统摄像头
- Android实现js及webview交互之在html页面中调用系统摄像头
- Android中Js与java的交互
- Android中WebView与JS的交互
- Android中webView与JS的交互
- Android中实现与js交互
- Android中WebView与JS交互
- Android中与js进行交互
- Android中与js进行交互
- 使用gimp画线、矩形、圆等
- Ftp文件上传的实现
- 面试题目---小字节序、大字节序、程序判断
- GEF实战:图形之基本图形
- 《STL源码剖析》-- stl_vector.h
- Android中 Js 扩展及交互
- ThinkPHP 自动验证与自动填充无效可能的原因
- c++构造函数
- webkit的js对象扩展(二)——binding方式创建自定义对象(多实例)
- C语言编译流程
- 基于WebKit浏览器的本地扩展方法
- JDBC 连接字符串大全
- three.js 绕其边缘旋转
- 数据库和代码程序间的数据类型选择