欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

web-view實(shí)現(xiàn)app應(yīng)用與網(wǎng)頁(yè)的數(shù)據(jù)交互方式

 更新時(shí)間:2025年05月15日 10:18:14   作者:愛編程的小學(xué)究  
這篇文章主要介紹了web-view實(shí)現(xiàn)app應(yīng)用與網(wǎng)頁(yè)的數(shù)據(jù)交互方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、網(wǎng)頁(yè)向app傳遞數(shù)據(jù)

1、在網(wǎng)頁(yè)項(xiàng)目的index.html頁(yè)面引入uniapp的js文件,引入成功之后就可以在事件里面使用uni.postMessage(網(wǎng)頁(yè)項(xiàng)目是用vue框架寫的)

<!-- uniapp 通信必須有的 -->
  <script type="text/javascript" src="https://unpkg.com/@dcloudio/uni-webview-js@0.0.2/index.js"></script>
  <script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script>
  <script>
     document.addEventListener('UniAppJSBridgeReady', function() {  
      uni.getEnv(function(res) {  
          console.log('當(dāng)前環(huán)境:' + JSON.stringify(res));  
      });  
    });
</script>

2、向app傳遞數(shù)據(jù),可以直接寫在點(diǎn)擊事件里面

uni.postMessage({
   data: {
       action: 'scanCode'
   }
})

二、app處理接收的數(shù)據(jù)并向網(wǎng)頁(yè)傳遞數(shù)據(jù)

1、app項(xiàng)目中引入網(wǎng)頁(yè)

<web-view @message="handleMessage" ref="webview" :src="url"></web-view>

2、handleMessage接收網(wǎng)頁(yè)傳過來(lái)的數(shù)據(jù)

 handleMessage(event) {
     console.log("webView傳遞過來(lái)的消息:" + JSON.stringify(evt.detail.data))
     // #ifdef APP-PLUS
     const currentWebview = this.$parent.$scope.$getAppWebview().children()[0]
     let data = event.detail.data.length>0?event.detail.data[0]:''
     if (data&&data.action == "scanCode") {
          console.log('數(shù)據(jù)接收成功')
          // 進(jìn)行處理
     }
     // #endif
 }

3、向網(wǎng)頁(yè)中傳遞數(shù)據(jù)

開發(fā)的時(shí)候使用this.$scope一直Cannot read property ‘$getAppWebview‘ of undefined,后來(lái)查找了很多才找到,組件內(nèi)要用this.$parent.$scope

如果web-view是放在組件里面的用下面的方法去獲取web-view窗口

//如果web-view就在當(dāng)前頁(yè)面里面,可以把$parent去掉
const currentWebview = this.$parent.$scope.$getAppWebview().children()[0]
currentWebview.evalJS(`scanCode(${JSON.stringify(_data)})`);

注意:如果頁(yè)面沒有初始化完成,可以加個(gè)定時(shí)等初始化完成在調(diào)用

var currentWebview = this.$scope.$getAppWebview() //此對(duì)象相當(dāng)于html5plus里的plus.webview.currentWebview()。在uni-app里vue頁(yè)面直接使用plus.webview.currentWebview()無(wú)效
setTimeout(function() {
   wv = currentWebview.children()[0]
}, 1000); 

三、快速起服務(wù)測(cè)試

如果你想快速上手的話,可以直接建一個(gè)html頁(yè)面起本地服務(wù)

  • 1、把index.html放到文件夾下
  • 2、打開文件夾 shift+鼠標(biāo)右鍵,打開命令行
  • 3、下載http-server: npm install http-server -g
  • 4、開啟本地服務(wù)器,輸入 http-server 就可以了
  • 5、關(guān)閉本地服務(wù)器,按快捷鍵 CTRL-C,當(dāng)顯示 ^Chttp-server stopped 的時(shí)候,就是關(guān)閉成功了

用http://192.168.0.8:8080 作為url引入到web-view里面

<web-view @message="handleMessage" ref="webview" src="http://192.168.0.8:8080 "></web-view>
  • index.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <title>網(wǎng)絡(luò)網(wǎng)頁(yè)</title>
    <style type="text/css">
      .btn {
        display: block;
        margin: 20px auto;
        padding: 5px;
        background-color: #007aff;
        border: 0;
        color: #ffffff;
        height: 40px;
        width: 200px;
      }
      .btn-red {
        background-color: #dd524d;
      }
      .post-message-section {
        visibility: hidden;
      }
    </style>
  </head>
  <body>
    <div class="post-message-section">
      <div class="btn-list">
        <button class="btn btn-red" type="button" id="postMessage">postMessage</button>
      </div>
    </div>
    <!-- uni 的 SDK -->
    <!-- uni.webview.1.5.4.js-->
    <script type="text/javascript" src="https://unpkg.com/@dcloudio/uni-webview-js@0.0.3/index.js"></script>
    <script type="text/javascript">
      // 待觸發(fā) `UniAppJSBridgeReady` 事件后,即可調(diào)用 uni 的 API。
      document.addEventListener('UniAppJSBridgeReady', function() {
        uni.postMessage({
            data: {
                action: 'message'
            }
        });
        uni.getEnv(function(res) {
            console.log('當(dāng)前環(huán)境:' + JSON.stringify(res));
        });
        document.getElementById('postMessage').addEventListener('click', function() {
          uni.postMessage({
            data: {
              action: 'message'
            }
          });
        });
      });
    </script>
  </body>
</html>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • es6函數(shù)之尾調(diào)用優(yōu)化實(shí)例分析

    es6函數(shù)之尾調(diào)用優(yōu)化實(shí)例分析

    這篇文章主要介紹了es6函數(shù)之尾調(diào)用優(yōu)化,結(jié)合實(shí)例形式分析了es6函數(shù)尾調(diào)用優(yōu)化相關(guān)功能、原理、實(shí)現(xiàn)方法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • Bootstrap的Refresh Icon也spin起來(lái)

    Bootstrap的Refresh Icon也spin起來(lái)

    本文通過實(shí)例給大家介紹Bootstrap的Refresh Icon相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-07-07
  • JavaScript生成隨機(jī)數(shù)的各種方法大全

    JavaScript生成隨機(jī)數(shù)的各種方法大全

    JavaScript 是一門強(qiáng)大的編程語(yǔ)言,在前端和后端開發(fā)中廣泛使用,生成隨機(jī)數(shù)是 JavaScript 開發(fā)中的常見需求,應(yīng)用場(chǎng)景包括游戲開發(fā)、驗(yàn)證碼生成、數(shù)據(jù)模擬等,本文將詳細(xì)介紹 JavaScript 中生成隨機(jī)數(shù)的各種方法,并分析其適用場(chǎng)景和優(yōu)缺點(diǎn),需要的朋友可以參考下
    2025-03-03
  • 關(guān)于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法

    關(guān)于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法

    下面小編就為大家?guī)?lái)一篇關(guān)于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2016-06-06
  • Ajv format校驗(yàn)使用示例分析

    Ajv format校驗(yàn)使用示例分析

    這篇文章主要為大家介紹了Ajv format校驗(yàn)使用示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 微信小程序比較兩個(gè)數(shù)大小的實(shí)現(xiàn)方法

    微信小程序比較兩個(gè)數(shù)大小的實(shí)現(xiàn)方法

    最近在工作中遇到一個(gè)需求,可以自動(dòng)對(duì)比兩個(gè)數(shù)的大小,下面這篇文章主要給大家介紹了關(guān)于微信小程序比較兩個(gè)數(shù)大小的實(shí)現(xiàn)方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • 微信小程序購(gòu)物車、父子組件傳值及calc的注意事項(xiàng)總結(jié)

    微信小程序購(gòu)物車、父子組件傳值及calc的注意事項(xiàng)總結(jié)

    這篇文章主要給大家介紹了關(guān)于微信小程序購(gòu)物車、父子組件傳值及calc的注意事項(xiàng)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • javascript在線編碼查詢工具

    javascript在線編碼查詢工具

    在線編碼查詢工具,編碼查詢,HTML編碼
    2010-10-10
  • TypeError: Cannot set properties of undefined (setting ‘xx‘)的問題及解決方法

    TypeError: Cannot set properties of 

    這篇文章主要介紹了TypeError: Cannot set properties of undefined (setting ‘xx‘)的問題,本文給大家分享完美解決方案,需要的朋友可以參考下
    2023-09-09
  • JavaScript設(shè)置獲取和設(shè)置屬性的方法

    JavaScript設(shè)置獲取和設(shè)置屬性的方法

    這篇文章主要介紹了JavaScript設(shè)置獲取和設(shè)置屬性的方法,學(xué)會(huì)使用getAttribute、setAttribute的用法,需要的朋友可以參考下
    2015-03-03

最新評(píng)論