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!