国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

小程序開發(fā)實(shí)戰(zhàn)案例五 | 小程序如何嵌入H5頁面

這篇具有很好參考價(jià)值的文章主要介紹了小程序開發(fā)實(shí)戰(zhàn)案例五 | 小程序如何嵌入H5頁面。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在接入小程序過程中會(huì)遇到需要將 H5 頁面集成到小程序中情況,今天我們就來聊一聊怎么把 H5 頁面塞到小程序中。

?

本篇文章將會(huì)從下面這幾個(gè)方面來介紹:

  • 小程序承載頁面的前期準(zhǔn)備
  • 小程序如何承載 H5
  • 小程序和 H5 頁面如何通訊
  • 小程序和 H5 頁面的相互跳轉(zhuǎn)

?

小程序承載頁面的前期準(zhǔn)備

首先介紹下我們在用小程序承載頁面之前需要做些什么。

第一步當(dāng)然就是 先有一個(gè) H5 地址 啦,支付寶這邊對(duì) H5 地址的要求如下:

  • 僅支持 https 開頭的地址
  • 不支持 IP 地址及端口號(hào)
  • 不支持重定向頁面

?

第二步就是要 將H5 頁面地址配置到支付寶的白名單 里面,這一步必不可少的;如果不配置的話,后面在訪問小程序的時(shí)候會(huì)遇到頁面訪問受限的報(bào)錯(cuò),詳見 ??[web-view頁面訪問受限]

?

具體步驟可以參考[配置 H5 域名],下面我簡單寫一下:

  • 登陸小程序詳情界面 -> 找到 開發(fā)設(shè)置 -> H5 域名配置 -> 點(diǎn)擊 添加

?

?

  • 按照上面的匹配規(guī)則提示進(jìn)行操作
    • 1、下載校驗(yàn)文件
    • 2、把下載下來的校驗(yàn)文件放到 H5 地址域名的根目錄下面
    • 3、在域名地址里輸入 H5 地址
    • 4、點(diǎn)擊圖片中的 點(diǎn)擊這里 進(jìn)行校驗(yàn)
    • 5、校驗(yàn)通過之后就可以添加了

?

?

?

小程序如何承載 H5

前期準(zhǔn)備完成后,我們就可以在小程序中去嵌入 H5 頁面了,嵌入的步驟非常簡單,需要用到的組件是 web-view ,在 web-view 組件的 src 屬性中傳入 H5 的頁面地址,就可以在小程序里面訪問 H5 頁面了,代碼示例如下:

<view class="page">
  <web-view
    src="https://render.alipay.com/p/s/web-view/index"
  ></web-view>
</view>

web-view 組件在使用過程中需要注意:

  • 每個(gè)小程序界面只能設(shè)置一個(gè) web-view ,也就是只能設(shè)置一個(gè) H5 頁面
  • web-view 組件會(huì)自動(dòng)鋪滿整個(gè)頁面
  • 個(gè)人類型的小程序不支持使用這個(gè)組件

?

另外,如果有小伙伴沒有完成前面配置 H5 域名步驟的話,也沒有關(guān)系;在調(diào)試階段,我們可以在小程序開發(fā)工具上選擇忽略 web-view 域名合法性檢查,這樣就不會(huì)有報(bào)錯(cuò)的情況了。詳細(xì)操作步驟參考??[小程序如何忽略域名校驗(yàn)]

?

?? 劃重點(diǎn):每次 H5 域名配置完成之后,都需要重新上線一個(gè)版本,版本上線之后,新配置的才會(huì)生效。

?

小程序和 H5 頁面如何通訊

小程序承載 H5 頁面后只是第一步,我們在實(shí)現(xiàn)部分功能上更多會(huì)遇到的就是如何實(shí)現(xiàn)數(shù)據(jù)在小程序和 H5 頁面之間進(jìn)行傳輸,此時(shí)就要用到 onMessage 屬性和 postMessag 方法了。

注意:小程序和 H5 數(shù)據(jù)傳輸是需要 H5 先發(fā)消息給小程序,小程序接收到消息后再發(fā)消息給 H5。

H5 端方法代碼如下:

  • 需要注意在 H5 頁面使用 my.postMessage 和 my.onMessage 方法時(shí)必須要引入 https://appx/web-view.min.js(此鏈接僅支持在支付寶客戶端內(nèi)訪問)
<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <title>webview與小程序通信</title>
  </head>

  <body>
    <button onclick="send()">發(fā)送</button>
    <button onclick="isminiapp()">判斷是否在小程序內(nèi)</button>
    <button onclick="onmessage()">開始監(jiān)聽小程序發(fā)送的消息</button>
    <button onclick="getminiappid()">我要調(diào)用小程序獲取APPID的API</button>
    <!-- h5 log 工具方便在小程序內(nèi)查看h5的log-->
    <script src="https://cdn.jsdelivr.net/npm/eruda"></script>
    <script>
      eruda.init();
    </script>
    
    <!--引入https://appx/web-view.min.js, 如該 H5 頁面需要同時(shí)在非支付寶客戶端內(nèi)使用,為避免該請求404,可參考以下寫法 -->
    <script>
      if (navigator.userAgent.indexOf('AlipayClient') > -1) {
        document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');
      }
    </script>
    <script>
      //發(fā)送消息
      function send() {
        my.postMessage({
          name: "h5發(fā)送測試web-view"
        });
      }
      //監(jiān)聽小程序發(fā)給H5頁面的消息
      function onmessage() {
        my.onMessage = function (e) {
          console.log(e);
        }
      }
      //判斷是否在小程序內(nèi)
      function isminiapp() {
        my.getEnv(function (res) {
          console.log(res.miniprogram) // true  
        });
      }
      //H5內(nèi)通過通信獲取APPID(先給小程序發(fā)送消息,表示H5內(nèi)需要APPID)
      function getminiappid() {
        my.postMessage({
          name: "getappid"
        });
      }
    </script>
  </body>

</html>

?

小程序端接收方法:

<!-- .axml -->
<view>
  <web-view id="web-view-1" src="..." onMessage="test"></web-view>
</view>

?

// 小程序頁面對(duì)應(yīng)的 page.js 聲明 test 方法,
// 由于 page.axml 里的 web-view 組件設(shè)置了 onMessage="test",
// 當(dāng)頁面里執(zhí)行完 my.postMessage 后,test 方法會(huì)被執(zhí)行
Page({
  onLoad(e){
    this.webViewContext = my.createWebViewContext('web-view-1');    
  },
  test(e){
    my.alert({
      content:JSON.stringify(e.detail),
    });  
    this.webViewContext.postMessage({'sendToWebView': '1'});
  },
});

?

?

小程序和 H5 頁面的相互跳轉(zhuǎn)

了解完通訊之后,我們再來看看另外一個(gè)功能,即小程序和 H5 頁面怎么相互跳轉(zhuǎn)。

小程序和 H5 頁面跳轉(zhuǎn)分為兩種情況,分別是:

  • 從 A 小程序的 a 頁面( H5 承載頁面)跳轉(zhuǎn)到 A 小程序的 b 頁面
  • 從 A 小程序的 a 頁面( H5 承載頁面)跳轉(zhuǎn)到 B 小程序的 b 頁面

?

同一個(gè)小程序頁面跳轉(zhuǎn)

這種情況跳轉(zhuǎn)比較簡單,只要在 H5 頁面里面引入 https://appx/web-view.min.js 后,直接使用my.navigateTo 或者是 my.redirectTo 進(jìn)行跳轉(zhuǎn)就可以了。

代碼如下:

<script type="text/javascript" src="https://appx/web-view.min.js"></script>
<!-- 如該 H5 頁面需要同時(shí)在非支付寶客戶端內(nèi)使用,為避免該請求404,可參考以下寫法 -->
<!-- 請盡量在 html 頭部執(zhí)行以下腳本 -->
<script>
  if (navigator.userAgent.indexOf('AliApp') > -1) {
    document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');
  }
</script>
<script>
  my.navigateTo({url: '../get-user-info/get-user-info'});
</script>

?

不同小程序頁面跳轉(zhuǎn)

不同小程序頁面的跳轉(zhuǎn)邏輯是這樣的:H5 頁面告訴 A 小程序說我要跳轉(zhuǎn) B 小程序啦,A 小程序接到指令后執(zhí)行跳轉(zhuǎn)到 B 小程序的命令。

代碼如下:

H5 頁面代碼

<script type="text/javascript" src="https://appx/web-view.min.js"></script>
<!-- 如該 H5 頁面需要同時(shí)在非支付寶客戶端內(nèi)使用,為避免該請求404,可參考以下寫法 -->
<!-- 請盡量在 html 頭部執(zhí)行以下腳本 -->
<script>
  if (navigator.userAgent.indexOf('AliApp') > -1) {
    document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');
  }
</script>
<script>
  // 網(wǎng)頁向小程序 postMessage 消息
  my.postMessage({name:"跳轉(zhuǎn)B小程序"});
  // 接收來自小程序的消息。
  my.onMessage = function(e) {
    console.log(e); // {'sendToWebView': '1'}
  }
  // 判斷是否運(yùn)行在小程序環(huán)境里
  my.getEnv(function(res) {
    console.log(res.miniprogram) // true
  });
  my.startShare();
</script>

?

?

小程序代碼:

<!-- .axml -->
<view class="page">
  <web-view
      id="web-view-1"
    src="https://render.alipay.com/p/s/web-view/index"
    onMessage="test"
  ></web-view>
</view>

?

// 小程序頁面對(duì)應(yīng)的 page.js 聲明 test 方法,
// 由于 page.axml 里的 web-view 組件設(shè)置了 onMessage="test",
// 當(dāng)頁面里執(zhí)行完 my.postMessage 后,test 方法會(huì)被執(zhí)行
Page({
  onLoad(e) {
    this.webViewContext = my.createWebViewContext('web-view-1');
  },
  test(e) {
    my.navigateToMiniProgram({
      appId: 'B小程序的appid', 
      path: 'pages/index/index?p=1&q=2',
      query: {
        a: 'foo',
        b: 'bar',
      },
      success: function (res) {
        console.log(res);
      },
      fail: function (err) {
        console.log(err);
      }
    });
    this.webViewContext.postMessage({ sendToWebView: '1' });
  },
});

?

?

其他問題分享

這邊給寫一下對(duì)接 web-view 過程中可能會(huì)遇到的一些問題:

  • [web-view如何調(diào)用H5支付]
  • [web-view的title怎么設(shè)置]
  • [web-view頁面可以使用自定義組件嗎]
  • [web-view承載的H5緩存與小程序緩存如何操作]
  • [web-view組件支持刷新當(dāng)前頁面嗎]
  • [已設(shè)置web-view的H5域名,但是訪問H5仍出現(xiàn)頁面訪問受限]

希望對(duì)大家接入有所幫助~

?

以上就是關(guān)于「小程序如何嵌入 H5 頁面」的所有內(nèi)容了,是不是這么一看還挺簡單的,一起來試試吧,有問題歡迎在評(píng)論區(qū)溝通交流。文章來源地址http://www.zghlxwxcb.cn/news/detail-804600.html

到了這里,關(guān)于小程序開發(fā)實(shí)戰(zhàn)案例五 | 小程序如何嵌入H5頁面的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信小程序開發(fā)實(shí)戰(zhàn)9_2 小程序頁面轉(zhuǎn)發(fā)

    微信小程序開發(fā)實(shí)戰(zhàn)9_2 小程序頁面轉(zhuǎn)發(fā)

    小程序頁面轉(zhuǎn)發(fā)是小程序分享的一個(gè)重要方式,在設(shè)計(jì)小程序應(yīng)用時(shí)就需要考慮那些頁面需要實(shí)現(xiàn)轉(zhuǎn)發(fā)功能,以及頁面的轉(zhuǎn)發(fā)參數(shù)。本節(jié)介紹如何進(jìn)行小程序頁面的分享,并介紹如何獲取小程序卡片的分享票據(jù)。 9.2.1小程序頁面轉(zhuǎn)發(fā) 微信小程序提供了頁面的轉(zhuǎn)發(fā)的功能,用戶

    2024年02月16日
    瀏覽(22)
  • 微信小程序web-view嵌入uni-app H5頁面,通過H5頁面跳轉(zhuǎn)企業(yè)微信客戶聊天窗口如何操作?

    微信小程序web-view嵌入uni-app H5頁面,通過H5頁面跳轉(zhuǎn)企業(yè)微信客戶聊天窗口如何操作?

    1)找到企業(yè)ID,登錄?企業(yè)微信 企業(yè)微信 https://work.weixin.qq.com/wework_admin/loginpage_wx ?2)找到接入鏈接? 功能-客服-微信客服 微信公眾平臺(tái),給個(gè)人、企業(yè)和組織提供業(yè)務(wù)服務(wù)與用戶管理能力的全新服務(wù)平臺(tái)。 https://mp.weixin.qq.com/

    2024年02月11日
    瀏覽(97)
  • 微信小程序開發(fā)系列(三)·微信小程序頁面的創(chuàng)建、小程序如何更改調(diào)試基礎(chǔ)庫

    微信小程序開發(fā)系列(三)·微信小程序頁面的創(chuàng)建、小程序如何更改調(diào)試基礎(chǔ)庫

    零基礎(chǔ)手把手教你創(chuàng)建微信小程序(一)·微信小程序開發(fā)賬號(hào)的注冊以及開發(fā)者工具的安裝和使用-CSDN博客 零基礎(chǔ)手把手教你創(chuàng)建微信小程序(二)·創(chuàng)建第一個(gè)微信小程序以及了解小程序代碼的構(gòu)成-CSDN博客 目錄 1.? 小程序頁面的創(chuàng)建 1.1? 方法一 1.2? 方法二 2.? 小程序如

    2024年04月26日
    瀏覽(27)
  • 小程序webview嵌入的H5頁面,點(diǎn)擊按鈕,返回小程序的指定頁面

    今天弄了一個(gè)活動(dòng),首先從小程序進(jìn)入webview里的H5頁面,然后H5頁面里有個(gè)按鈕,點(diǎn)擊后需要跳轉(zhuǎn)到小程序的注冊頁。那么,H5那邊該怎么實(shí)現(xiàn)呢? 因?yàn)橐呀?jīng)進(jìn)入小程序環(huán)境了,所以實(shí)現(xiàn)起來相對(duì)單純的H5跳小程序比較簡單 npm install --save weixin-js-sdk

    2024年02月16日
    瀏覽(23)
  • uniapp開發(fā)小程序H5頁面頂部導(dǎo)航欄navigationBar如何隱藏?三種解決辦法

    uniapp開發(fā)小程序H5頁面頂部導(dǎo)航欄navigationBar如何隱藏?三種解決辦法

    方法1:在pages.json 原生小程序也可以采用類似的方法去掉頂部,讓頭部變透明 小程序頁面頂部導(dǎo)航欄navigationBar如何隱藏、變透明?_你摯愛的強(qiáng)哥的博客-CSDN博客 小程序頂部的白色背景條就不見了,直接變透明,只剩下右上角的膠囊按鈕。 https://s-z-q.blog.csdn.net/article/details/13

    2024年02月13日
    瀏覽(31)
  • 如何Uniapp中嵌入H5,并且在H5中跳轉(zhuǎn)到APP的指定頁面

    如何Uniapp中嵌入H5,并且在H5中跳轉(zhuǎn)到APP的指定頁面

    有一個(gè)需求是,在app中嵌入一個(gè)H5頁面,H5是一個(gè)網(wǎng)絡(luò)頁面,不在app項(xiàng)目里,APP可以打開H5頁面,實(shí)現(xiàn)單點(diǎn)登錄,并且在H5 頁面中打開APP指定的頁面 在uniapp中,有一個(gè)web-view組件,這就相當(dāng)于一個(gè)瀏覽器組件,可以用來承載網(wǎng)頁的容器,會(huì)自動(dòng)鋪滿整個(gè)頁面 web-view的詳細(xì)文檔參

    2024年02月04日
    瀏覽(97)
  • uni-app | 小程序嵌入H5頁面實(shí)現(xiàn)支付功能

    uni-app | 小程序嵌入H5頁面實(shí)現(xiàn)支付功能

    前一陣在做公司小程序時(shí),有個(gè)需要對(duì)接支付的功能。但是本著訂單數(shù)據(jù)和支付統(tǒng)一入口的設(shè)計(jì)原則,計(jì)劃是對(duì)接公司商城現(xiàn)有的支付體系。故本方案是分析對(duì)接商城支付幾種可行方案以及每種方案的可行性,最后綜合選出一種最佳的方案。 實(shí)現(xiàn)方式 跳轉(zhuǎn)商城小程序支付 跳

    2024年02月07日
    瀏覽(29)
  • 微信小程序webview嵌入H5頁面,返回 UniAppJSBridgeReady,不觸發(fā)問題

    公司的一個(gè)項(xiàng)目,要求用微信小程序?qū)崿F(xiàn)對(duì)pdf文件,預(yù)覽簽字,用的uniapp開發(fā) pdf預(yù)覽這部分,用的pdf.js插件實(shí)現(xiàn)。 由于微信小程序中webview展示頁面不能放在項(xiàng)目本地,要求遠(yuǎn)端請求網(wǎng)頁。而且webview會(huì)鋪滿整個(gè)頁面,導(dǎo)致我的簽字按鈕只能放在遠(yuǎn)端的H5頁面實(shí)現(xiàn),當(dāng)時(shí)因?yàn)橥?/p>

    2024年02月15日
    瀏覽(25)
  • 微信小程序web-view嵌入uni-app H5頁面,通過H5頁面?zhèn)鲄⒔o小程序進(jìn)行轉(zhuǎn)發(fā)分享頁面,并通過點(diǎn)擊轉(zhuǎn)發(fā)出來的卡片,定向打開對(duì)應(yīng)H5路徑

    index.wxml ?index.js 在H5項(xiàng)目的App.vue頁面獲取參數(shù)實(shí)現(xiàn)自動(dòng)跳轉(zhuǎn)到對(duì)應(yīng)頁面,包括攜帶的參數(shù)值

    2024年02月12日
    瀏覽(96)
  • 微信小程序開發(fā)教學(xué)系列(12)- 實(shí)戰(zhàn)項(xiàng)目案例

    微信小程序開發(fā)教學(xué)系列(12)- 實(shí)戰(zhàn)項(xiàng)目案例

    本章將通過一個(gè)簡單的實(shí)戰(zhàn)項(xiàng)目案例來幫助讀者鞏固之前學(xué)習(xí)到的知識(shí)。我們將搭建一個(gè)名為“ToDoList”的微信小程序,實(shí)現(xiàn)一個(gè)簡單的任務(wù)清單功能。 ToDoList是一個(gè)用于記錄和管理任務(wù)的小程序。用戶可以添加、編輯、完成和刪除任務(wù),以及查看任務(wù)清單。 功能需求 顯示任

    2024年02月11日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包