详见尚硅谷Android课程《Android与H5互调》,整篇复制其中代码,
地址:http://www.gulixueyuan.com/my/course/126
在这里只是记录一下...
结果(列举其中部分):
会联网播放视频,在自己的浏览器中…
主要是一个android与h5的互调内容
在onCreate方法中创建一个webView:
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_js_call_java_video);
super.onCreate(savedInstanceState);
webView = (WebView) findViewById(R.id.webview);
webView = new WebView(this);
WebSettings settings = webView.getSettings();
//设置javascript插件
settings.setJavaScriptEnabled(true);
//自己创建一个浏览器
webView.setWebViewClient(new WebViewClient());
//添加JavaScriptInterface
webView.addJavascriptInterface(new AndroidAndJsInterface(),"android");
//这里的android和要加载的html中方法签名的字段相匹配
// webView.loadUrl("http://www.baidu.com");
webView.loadUrl("file:///android_asset/RealNetJSCallJavaActivity.htm");
setContentView(webView);//虽然布局是WebView,但是这里不写就显示不出来...很奇怪
}
实现Activity中的AndroidAndJsInterface():
class AndroidAndJsInterface{
@JavascriptInterface//添加 @ 解决报错问题
public void playVideo(int id,String url, String title){
//用所有的视频播放器播放,多个播放器可以选择
Intent intent = new Intent();
intent.setDataAndType(Uri.parse(url),"video/*");
Toast.makeText(JsCallJavaVideoActivity.this,"url = "+url,Toast.LENGTH_SHORT).show();
startActivity(intent);
}
}
实现调用的html中的方法;
javascript:android.playVideo(itemid, videourl, itemtitle);
//android与 addJavascriptInterface(new AndroidAndJsInterface(),"android"); 相匹配
//在AndroidAndJsInterface 中实现 playVideo 方法