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));


在MyWebViewClient的onPageFinished方法中注入javascript代码

public class MyWebViewClient extends WebViewClient {private Context con;public PTCWebViewClient(Context con, final WebView web){this.con = con;}@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);}@Overridepublic 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()事件。一旦点击,界面就跳转,或者做任何你想做的事情

更多相关文章

  1. Android Activity 界面切换动画
  2. Android 关于嵌套listView时onItemClick事件不响应的解决办法
  3. Android webkit keyevent 事件传递过程
  4. android屏幕触摸事件机制
  5. [置顶] android 长按和点击监听事件 谁先执行
  6. 【记录】Android监听蓝牙耳机的按键事件
  7. Android onTouch事件解析

随机推荐

  1. Android(安卓)basic1
  2. Android7.0中文API -- SeekBar
  3. Android圆型头像实现
  4. 【Android】自定义 Tabhost
  5. Android(安卓)SystemClock
  6. Android(安卓)basic1
  7. 怎样更新Android(安卓)SDK1.1 到 Android
  8. Android(安卓)HTTP框架Volley详解
  9. android studio3 多渠道打包及编译速度优
  10. Android(安卓)basic1