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

Android webview加載H5方法詳細介紹

 更新時間:2022年08月23日 16:29:07   作者:夜跑者  
這篇文章主要介紹了Android webview加載H5的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

這篇文章主要闡述3個知識點

  • 安卓APP 怎么用webview加載H5
  • H5怎么調(diào)用安卓定義的方法
  • 安卓怎么調(diào)用H5定義的方法

1,安卓APP 怎么用webview加載H5

安卓端定義個webview xml 頁面,代碼如下所示:

<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/web_view_id"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</WebView>

之后再對webview 實例進行設置,用loadUrl 方法加載H5 路徑即可。代碼如下:

        webView = (WebView) view.findViewById(R.id.web_view_id);
        WebSettings settings = webView.getSettings();
        settings.setJavaScriptEnabled(true);
        WebChromeClient webChromeClient = new WebChromeClient();
        webView.setWebChromeClient(webChromeClient);
        settings.setUseWideViewPort(true);
        settings.setLoadWithOverviewMode(true);
        settings.setBuiltInZoomControls(true);
        settings.setSupportZoom(true);
        settings.setDefaultTextEncodingName("UTF-8");
        settings.setJavaScriptCanOpenWindowsAutomatically(true);
        //String _url = "http://xxx.xxx.xxx/link/index.html#/home/index"; //服務器地址
        String _url = "file:android_asset/dist/index.html#/home/index"; //本地地址
        webView.loadUrl(_url);

不出意外的話會看到加載的H5頁面了。

2,H5怎么調(diào)用安卓定義的方法

首先定義一個類,寫上供H5調(diào)用的方法,注意這個方法要用@JavascriptInterface修飾,代碼如下所示:

public class Mine {
    private Context context;
    public Mine(Context _context){
        this.context = _context;
    }
    @JavascriptInterface
    public  void loginOut(){
        ((MainActivity) context).loginOut();
    }
}

然后注冊這個類,如下所示:

webView.addJavascriptInterface(new Mine(this.getActivity()), "mineInterface");

這樣安卓端就寫好了。接下來就是H5端調(diào)用了。

window.mineInterface.loginOut();

H5端直接這么調(diào)用就可以了。

如果js想傳遞json對象參數(shù)給安卓端怎么辦,不要直接寫json對象,要轉(zhuǎn)換為json字符串,代碼如下:

          window.mineInterface.loginOutTest(JSON.stringify({
            title: "iot",
            name: "iot"
          }));

安卓端接收如下:

    @JavascriptInterface
    public  void loginOutTest(String params){
        Log.d(AppYunlanLink.TAG, "test: " + params);
    }

3,安卓怎么調(diào)用H5定義的方法

H5 我是用的vue 框架,方法寫在了頁面內(nèi),如下所示:

  created() {    
    window.setUserInfo = this.setUserInfo; //android app 會調(diào)用此方法
  },
  methods: {
    setUserInfo(userInfo) {
      const _userInfo = JSON.parse(userInfo);      
      this.userName = _userInfo.username;      
      this.avatar = _userInfo.avatar;
    }
  },

注意方法一定要掛載到window對象上。安卓端怎么調(diào)用呢?

    //調(diào)用html5 頁面中的方法,帶JSONObject類型參數(shù)
    public void loadWebViewFuncWithJSON(String funcName, JSONObject value) {
        webView.post(new Runnable() {
            @Override
            public void run() {
                String _url = "javascript:" + funcName + "('" + value + "')";
                Log.d(AppYunlanLink.TAG, "value is: " + value);
                webView.loadUrl(_url);
            }
        });
    }
    fg4.loadWebViewFuncWithJSON("setUserInfo", info);

這是帶有參數(shù)的調(diào)用,安卓端是JSONObject類型的,H5端接收的是json字符串。不帶參數(shù)的調(diào)用更簡單了,如下:

    //調(diào)用html5 頁面中的方法
    public void loadWebViewFunc(String funcName) {
        String _url = "javascript:" + funcName + "()";
        webView.loadUrl(_url);
    }

到此這篇關(guān)于Android webview加載H5方法詳細介紹的文章就介紹到這了,更多相關(guān)Android加載H5內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android實現(xiàn)圖片緩存與異步加載

    Android實現(xiàn)圖片緩存與異步加載

    這篇文章主要為大家詳細介紹了Android實現(xiàn)圖片緩存與異步加載的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • Android使用Kotlin實現(xiàn)多節(jié)點進度條

    Android使用Kotlin實現(xiàn)多節(jié)點進度條

    這篇文章主要為大家詳細介紹了Android使用Kotlin實現(xiàn)多節(jié)點進度條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Flutter應用集成極光推送的實現(xiàn)示例

    Flutter應用集成極光推送的實現(xiàn)示例

    這篇文章主要介紹了Flutter應用集成極光推送的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • android app在后臺運行彈出彈窗

    android app在后臺運行彈出彈窗

    這篇文章主要為大家介紹了android app在后臺運行彈出彈窗,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Android實現(xiàn)按鈕點擊事件的三種方法總結(jié)

    Android實現(xiàn)按鈕點擊事件的三種方法總結(jié)

    Button是程序用于和用戶進行交互的一個重要控件。既然有Button,那肯定有onClick方法,下面就教大家三種實現(xiàn)點擊事件的方法,感興趣的可以了解一下
    2022-04-04
  • android中view手勢滑動沖突的解決方法

    android中view手勢滑動沖突的解決方法

    本篇文章主要介紹了android中view手勢滑動沖突的解決方法,主要解決方法有兩種,外部和內(nèi)部攔截。有需要的可以參考下。
    2016-11-11
  • Android View教程之自定義驗證碼輸入框效果

    Android View教程之自定義驗證碼輸入框效果

    這篇文章主要給大家介紹了關(guān)于Android View教程之自定義驗證碼輸入框效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對各位Android開發(fā)者們具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • Android編程之數(shù)據(jù)庫Sql編程實例分析

    Android編程之數(shù)據(jù)庫Sql編程實例分析

    這篇文章主要介紹了Android編程之數(shù)據(jù)庫Sql編程,實例分析了Android操作Sqlite數(shù)據(jù)庫的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • Android實現(xiàn)微信支付功能詳解

    Android實現(xiàn)微信支付功能詳解

    這篇文章主要為大家詳細介紹了Android實現(xiàn)微信支付功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android多邊形區(qū)域掃描線種子填充算法的示例

    Android多邊形區(qū)域掃描線種子填充算法的示例

    這篇文章主要介紹了Android多邊形區(qū)域掃描線種子填充算法的示例,具有很好的參考價值,希望對大家有所幫助,一起跟隨小編過來看看吧
    2018-05-05

最新評論

兴业县| 安平县| 清镇市| 灵璧县| 汉中市| 炉霍县| 平阴县| 两当县| 固镇县| 全州县| 调兵山市| 梧州市| 昭平县| 抚州市| 尉氏县| 元氏县| 冕宁县| 南汇区| 大关县| 公主岭市| 枣庄市| 博湖县| 吉安市| 晋宁县| 丰顺县| 津南区| 武宁县| 曲阳县| 蒙阴县| 松滋市| 天等县| 米林县| 镇宁| 体育| 张家川| 驻马店市| 湄潭县| 绵竹市| 炎陵县| 南丰县| 黄浦区|