日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android与Js进行交互

發布時間:2023/12/18 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android与Js进行交互 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android與JS進行交互主要依靠WebView,webView相當于一個橋梁來溝通兩者。

Android調用Js:

1、webView的loadurl()方法

互聯網頁面用:loadUrl(http://baidu.com);

本地文件用:loadUrl(file://android_asset/xx.html);

? ? ? ? ? ? ? ? ? ? ? ? 但是調用此方法必須加上此代碼:

mWebView = (WebView) findViewById(R.id.mWebView); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true);

html串用:String html=“html的內容”;

? ? ? ? ? ? ? ? ? ?myWebView.loadData(htmlString, "text/html", "utf-8");

2、通過webView的evaluateJavascript()方法

區別:loadUrl()使用簡單,無返回值,所以效率低,每調用一次就刷新一次;evaluateJavascript()有返回值,效率高,調用的時候不刷新webView,只能在Android4.4以上支持。

JS調用Android代碼:

1、通過WebView的addJavascriptInterface()進行對象映射

步驟:

? ? ? ? ? ? 定義一個與JS對象映射關系的Android類

? ? ? ? ? ? 將需要調用的JS代碼以.html格式放到src/main/assets文件夾里

? ? ? ? ? ? 在Android里通過WebView設置Android類與JS代碼的映射

? ? ? ? ? ? 特點:使用簡單

? ? ? ? ? ? 僅將Android對象和JS對象映射即可,不過它存在嚴重的漏洞問題

2、通過?WebViewClient?的shouldOverrideUrlLoading ()方法回調攔截 url

步驟:

? ? ? ? ? ? ?在JS約定所需要的Url協議

? ? ? ? ? ? ?在Android通過WebViewClient復寫shouldOverrideUrlLoading ()

? ? ? ? ? ? ?特點:優點:不存在方式1的漏洞

? ? ? ? ? ? ? ? ? ? ? ? ?缺點:JS獲取Android方法的返回值復雜。

3、通過?WebChromeClient?的onJsAlert()、onJsConfirm()、onJsPrompt()方法回調攔截JS對話框alert()、confirm()、prompt()消息

步驟:

????加載JS代碼,把js代碼放在assets文件中

????在Android通過WebChromeClient復寫onJsPrompt()

May everyone be happy every day and everything go well!

總結

以上是生活随笔為你收集整理的Android与Js进行交互的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。