Android中 Js 扩展及交互
2012-06-03 19:12
134 查看
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的改动
view plaincopyprint?
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"); //调用的网页
}
}
[html]
view plaincopyprint?
demo.html:
[html]
view plaincopyprint?
<body>
<a onClick="window.demo.clickOnAndroid()"> //调用activity的clickOnAndroid()函数
<imgidimgid="droid"src="android_normal.png"/><br>Click me!
</a>
</body>
l>
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函数相互调用
[java]view plaincopyprint?
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"); //调用的网页
}
}
[java] view plaincopyprint? </pre><pre name="code" class="java"><pre name="code" class="html"> </pre><pre name="code" class="java"><pre name="code" class="html">
[html]
view plaincopyprint?
demo.html:
[html] view plaincopyprint? <html> <script language="javascript"> function wave() { //准备在activity里调用的函数 document.getElementById("droid").src="android_waving.png"; } </script> <html> <script language="javascript"> function wave() { //准备在activity里调用的函数 document.getElementById("droid").src="android_waving.png"; } </script>
[html]
view plaincopyprint?
<body>
<a onClick="window.demo.clickOnAndroid()"> //调用activity的clickOnAndroid()函数
<imgidimgid="droid"src="android_normal.png"/><br>Click me!
</a>
</body>
l>
相关文章推荐
- Android中 Js 扩展及交互
- android webview js 交互
- android webview 初学实例-页面JS与后台交互
- ANDROID 与JS交互
- Android:你要的WebView与 JS 交互方式 都在这里了
- Android 中 native与Html中Js 交互
- Android下用WebView搭建Web APP,官方的JS交互(Building Web Apps in WebView)
- android webview js交互 第一节 (java和js交互)
- android 与JS之间的交互
- Android中webview和js之间的交互
- android webview js交互 (java和js交互)
- 最全面总结 Android WebView与 JS 的交互方式
- Android的webview控件和js脚本语言交互小例子
- android webview js交互 第一节 (java和js交互)
- php与android交互js
- android webview js交互, 响应webview中的图片点击事件
- android webview js交互, 响应webview中的图片点击事件 ,点击(双击)使图片变大,单击退出
- android webview js交互 第一节 (java和js交互)
- Android与js交互实例
- Cocos2d-js和Android交互