android:如何在java代码中覆盖webview中的javascript事件
Title:如何通过点击android的webView中的一个元素打开native的界面(activity)
如何在webView中直接打开native的界面
设置webview支持javascript
- webview.getSettings().setJavaScriptEnabled(true);
添加提供给javascript调用的类对象和接口名字
- webview.addJavascriptInterface(new JavascriptInterface(MyActivity.this), "mynamespace");
供javascript调用的类的代码
- public class JavascriptInterface {
- private Activity activity;
- public JavascriptInterface(Activity activity){
- this.activity = activity;
- }
- public void toMyPage(){
- Intent intent = new Intent();
- intent.setClass(activity, AnotherActivity.class);
- activity.startActivity(intent);
- }
- }
为webview添加WebViewClient
- webview.setWebViewClient(new MyWebViewClient(this, browser));
- public class MyWebViewClient extends WebViewClient {
- private Context con;
- public PTCWebViewClient(Context con, final WebView web){
- this.con = con;
- }
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- view.loadUrl(url);
- return true;
- }
- @Override
- public void onPageStarted(WebView view, String url, Bitmap favicon) {
- super.onPageStarted(view, url, favicon);
- }
- @Override
- public void onPageFinished(WebView view, String url) {
- super.onPageFinished(view, url);
- view.loadUrl("javascript:(function(){document.getElementById('snapNSendBtn').onclick=function(){window.ltamtc.toSnapNSend();}})()");
- }
- }
如此一来,每当这个webView加载完一个页面,而且这个页面有ID为“mySourceButton”的元素,那这个元素的点击事件就被修改为用户自定义的暴露给javascript调用的toMyPage()事件。一旦点击,界面就跳转,或者做任何你想做的事情
最后更新:2017-04-02 16:47:54
上一篇:
android apk代码和xml资源文件反编译
下一篇:
Android布局实现圆角边框
NSLocalizedString 实现国际化
《Servlet、JSP和Spring MVC初学指南》——1.2 Servlet
专访体素科技 CEO 丁晓伟:医疗人工智能产品如何成为医生的“左膀右臂”?
ubuntu11.10 删除UNITY 侧边栏
Config文件详解
从失业妇女到家中顶梁柱,在线教育给我改变机会
C# XML本地文件转换成XML字符串
《数据结构与抽象:Java语言描述(原书第4版)》一1.4 像使用自动贩卖机一样使用ADT
5月9日云栖精选夜读:不断变化下的阿里云:2017阿里云产品和解决方案全向图(5月版)
poj 2301 Beat the Spread!