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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

H5与客户端交互的方式有哪些? 怎么做?

發布時間:2023/12/15 综合教程 23 生活家
生活随笔 收集整理的這篇文章主要介紹了 H5与客户端交互的方式有哪些? 怎么做? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先解釋一個名詞吧 Hybrid, 相信能看到這篇文章的同學對這個詞都不會感到陌生, 可能愛恨交叉的感覺會更強烈一些...

回到正題, Hybrid翻譯過來叫混合,混合物,在前端世界里有一個詞語叫混合開發便是它,大白話點就是將網頁內嵌在原生app中,然后產生一系列的交互

常用的交互方式

雙方約定協議(schema)

雙方約定函數

雙方約定協議(schema)

這里以android 為例,android 中可以通過WebViewClient 的回調方法shouldOverrideUrlLoading ()攔截 url, 然后解析該 url 的協議, 如果檢測到是預先約定好的協議,就調用相應方法

協議式的通信適用于單向交互, 客戶端想要回傳給我們參數比較復雜

代碼理解

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <button type="button" id="button1" onclick="callAndroid()">點擊調用Android代碼</button>
    <script>
        function callAndroid() {
            /*約定的url協議為:js://webview?arg1=111&arg2=222*/
            location.href = "js://webview?arg1=111&arg2=222";
        }
    </script>
</body>

</html>

雙方約定函數

簡單來說,就是客戶端為我們做了一層關系映射, 也可以理解原生app端會向webview暴露一個頂層對象,就像js中的window,這個對象包含web需要但不具備因此由原生實現的一些方法

代碼理解

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <!-- 點擊按鈕則調用jsbridge函數 -->
    <button type="button" id="button1" onclick="jsbridge()">Hello</button>

    <script>
        function jsbridge() {
            // 由于對象映射,所以調用test對象等于調用Android映射的對象
            test.hello("js調用了原生app暴漏出來jsbridge中的hello方法");
        }
    </script>
</body>

</html>

總結

約定協議(native攔截http協議進行判讀是否是定義好的協議)

約定函數(native向webview注入頂級對象)

總結

以上是生活随笔為你收集整理的H5与客户端交互的方式有哪些? 怎么做?的全部內容,希望文章能夠幫你解決所遇到的問題。

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