use*_*599 5 javascript android parameter-passing phonegap-plugins
我想为手机创建一个插件,它传递并返回javascript和android之间的值.
任何人都可以建议如何做到这一点?
Bor*_*jev 14
实际上,这并不是很困难.在这里,我将向您展示如何从页面中的javascript调用本机代码,反之亦然:
从Web视图中调用本机代码:
在创建Web视图时添加javascript接口(基本上是java类,其方法将在Web视图中通过javascript调用.
JavaScriptInterface jsInterface = new JavaScriptInterface(this);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(jsInterface, "JSInterface");
Run Code Online (Sandbox Code Playgroud)
javascript接口类本身的定义(这是我从我的另一个回答中获取的示例性类,并以本机意图打开视频)
public class JavaScriptInterface {
private Activity activity;
public JavaScriptInterface(Activity activiy) {
this.activity = activiy;
}
public void startVideo(String videoAddress){
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(videoAddress), "video/3gpp"); // The Mime type can actually be determined from the file
activity.startActivity(intent);
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果要从页面的HTML中调用此代码,请提供以下方法:
<script>
function playVideo(video){
window.JSInterface.startVideo(video);
}
</script>
Run Code Online (Sandbox Code Playgroud)
容易不是吗?
从本机代码调用javascript代码:
这也很简单,假设在WebView中加载的HTML代码中你定义了javascript函数:
<script>
function function(){
//... do something
}
</script>
Run Code Online (Sandbox Code Playgroud)
然后通过本机代码中的WebView调用此函数,如下所示:
webView.loadUrl("javascript:function()");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9568 次 |
| 最近记录: |