最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android傳遞參數(shù)給webView的h5頁面3種方法

 更新時間:2024年08月14日 09:38:28   作者:月色月石  
最近幾年隨著h5的強勢崛起,越來越多的公司運用h5開發(fā)或者采用h5與android的混合開發(fā),這篇文章主要給大家介紹了關于Android傳遞參數(shù)給webView的h5頁面的3種方法,需要的朋友可以參考下

1.最簡單的方式是通過URL參數(shù)將數(shù)據(jù)傳遞給H5頁面

Android可以通過WebView的loadUrl()方法加載帶有參數(shù)的URL,H5頁面可以通過解析URL來獲取參數(shù)值。
首先,在Android端構造帶有參數(shù)的URL,然后加載該URL到WebView中:

    WebView webView = findViewById(R.id.webView); 
    String param1 = "value1";
    String param2 = "value2";
    String url = " + param1 + "&param2=" + param2;
    webView.loadUrl(url);

在H5頁面中,可以通過解析URL獲取參數(shù)值:

    function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
    results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
    }

    var param1 = getParameterByName('param1');
    var param2 = getParameterByName('param2');

2.使用JavascriptInterface傳遞參數(shù),即H5頁面調用Android的方法

通過JavascriptInterface在Android端和H5頁面之間建立橋梁,實現(xiàn)雙向通信,即通過addJavascriptInterface()方法將一個Java對象注入到WebView中,H5頁面可以通過該對象調用Android端的方法獲取參數(shù)值。

1.自定義一個MyJavascriptInterface類,并且在類中實現(xiàn)接受到消息之后的操作和要給h5傳遞的數(shù)據(jù)。
2.創(chuàng)建MyJavascriptInterface類對象,將對象傳給webView.addJavascriptInterface(myJavascriptInterface, “Android”)。

   public class MyJavascriptInterface {
        @JavascriptInterface
        public String sendData(string str) {
           //處理從h5頁面參數(shù)獲取到的數(shù)據(jù)
        }

        @JavascriptInterface
        public String getDeviceInfo() {
        	//h5頁面調用此方法即可獲取到String 類型的數(shù)據(jù)
           return stationPoints;
        } 

         @JavascriptInterface
         public String getAllDefect() {
              //給h5發(fā)送復雜數(shù)據(jù)用Gson
             return new Gson().toJson(report.getAppDefectDtos());
         }
   }
   WebView webView = findViewById(R.id.webView);
   webView.getSettings().setJavaScriptEnabled(true);
   MyJavascriptInterface myJavascriptInterface = new MyJavascriptInterface();
   webView.addJavascriptInterface(myJavascriptInterface, "Android");
   webView.loadUrl()

在h5頁面中可以調用Android給的接口:

  //發(fā)簡單數(shù)據(jù)
  function sendData(str){
     Android.sendData(str)
  }

  //h5收數(shù)據(jù)
  var deviceInfo = JSON.parse(window.android.getDeviceInfo());
  
  //給h5收復雜數(shù)據(jù)用json
  let JsondefectData = JSON.parse(defectData);

3.使用WebView的evaluateJavascript方法傳遞參數(shù)即Android調用h5的方法

在Android端直接執(zhí)行JavaScript代碼,并傳遞參數(shù)給H5頁面。

Android調用了h5的callJS()方法,然后收到了一個返回值(此處的callJS方法也可攜帶參數(shù)進行交互)

  // 假設你有一個參數(shù)叫做 paramValue  
String paramValue = "你的參數(shù)值";  
  
// 確保參數(shù)值被正確轉義,特別是如果它包含特殊字符或引號  
// 在這個例子中,我們只是簡單地將它用單引號括起來,但在實際情況中可能需要更復雜的轉義  
String javaScriptCode = "javascript:callJS('" + paramValue.replace("'", "\\'") + "');";  
  
mWebView.evaluateJavascript(javaScriptCode, new ValueCallback<String>() {  
    @Override  
    public void onReceiveValue(String value) {  
        // 此處為 js 返回的結果  
        Log.d("WebView", "Received value from JavaScript: " + value);  
    }  
});

在H5頁面中,可以定義一個receiveParams()函數(shù)來接收參數(shù):

  function callJS(param) {  
    // 在這里使用 param 參數(shù)  
    console.log("Received parameter from Android: " + param);  
    // ...其他代碼...  
}

總結 

到此這篇關于Android傳遞參數(shù)給webView的h5頁面的文章就介紹到這了,更多相關Android傳遞參數(shù)給h5頁面內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Android 畫中畫模式的實現(xiàn)示例

    Android 畫中畫模式的實現(xiàn)示例

    這篇文章主要介紹了Android 畫中畫模式的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Android自定義水波紋動畫Layout實例代碼

    Android自定義水波紋動畫Layout實例代碼

    這篇文章主要介紹了Android自定義水波紋動畫Layout的實例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • Android使用MediaCodec將攝像頭采集的視頻編碼為h264

    Android使用MediaCodec將攝像頭采集的視頻編碼為h264

    這篇文章主要為大家詳細介紹了Android使用MediaCodec將攝像頭采集的視頻編碼為h264,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Android控件ViewFlipper仿淘寶頭條垂直滾動廣告條

    Android控件ViewFlipper仿淘寶頭條垂直滾動廣告條

    這篇文章主要為大家詳細介紹了Android控件ViewFlipper仿淘寶頭條垂直滾動廣告條,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Flutter?Getx中的put和lazyPut函數(shù)使用案例解析

    Flutter?Getx中的put和lazyPut函數(shù)使用案例解析

    這篇文章主要為大家介紹了Flutter?Getx中的put和lazyPut函數(shù)使用案例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Android 線程之自定義帶消息循環(huán)Looper的實例

    Android 線程之自定義帶消息循環(huán)Looper的實例

    這篇文章主要介紹了Android 線程之自定義帶消息循環(huán)Looper的實例的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • Flutter質感設計之進度條

    Flutter質感設計之進度條

    這篇文章主要為大家詳細介紹了Flutter質感設計之進度條,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Android自定義商品購買數(shù)量加減控件

    Android自定義商品購買數(shù)量加減控件

    這篇文章主要為大家詳細介紹了Android自定義商品購買數(shù)量加減控件的相關代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Android測試中Appium的一些錯誤解決技巧

    Android測試中Appium的一些錯誤解決技巧

    今天小編就為大家分享一篇關于Android測試中Appium的一些錯誤解決技巧的文章,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Android中的JSON詳細總結

    Android中的JSON詳細總結

    一種輕量級的數(shù)據(jù)交換格式,具有良好的可讀和便于快速編寫的特性。業(yè)內主流技術為其提供了完整的解決方案(有點類似于正則表達式,獲得了當今大部分語言的支持),從而可以在不同平臺間進行數(shù)據(jù)交換
    2013-01-01

最新評論

道孚县| 安吉县| 恩平市| 清远市| 江西省| 南开区| 老河口市| 恩平市| 左贡县| 大同市| 响水县| 巨鹿县| 方城县| 诏安县| 南乐县| 金堂县| 红原县| 全州县| 雅江县| 遵义县| 苍溪县| 商河县| 涡阳县| 定远县| 嵊泗县| 青浦区| 钟山县| 铜鼓县| 辽源市| 东港市| 罗田县| 大洼县| 轮台县| 莱州市| 班戈县| 原阳县| 杭锦旗| 莱州市| 丽江市| 松江区| 南川市|