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

Uniapp中嵌入H5并在H5中跳轉(zhuǎn)到APP的指定頁面方法詳解

 更新時間:2023年09月25日 10:09:24   作者:takmehand  
Uniapp是一款基于Vue.js框架的跨平臺開發(fā)工具,支持在一套代碼中開發(fā)出運行于各大平臺的應用程序,這篇文章主要給大家介紹了關于Uniapp中嵌入H5并在H5中跳轉(zhuǎn)到APP的指定頁面的相關資料,需要的朋友可以參考下

場景

有一個需求是,在app中嵌入一個H5頁面,H5是一個網(wǎng)絡頁面,不在app項目里,APP可以打開H5頁面,實現(xiàn)單點登錄,并且在H5 頁面中打開APP指定的頁面

Web-View

在uniapp中,有一個web-view組件,這就相當于一個瀏覽器組件,可以用來承載網(wǎng)頁的容器,會自動鋪滿整個頁面web-view的詳細文檔參考uniapp官網(wǎng)

https://uniapp.dcloud.net.cn/component/web-view.html#web-view

在官網(wǎng)中提供的是APP嵌入原生的H5頁面

    從官方demo的代碼,原生H5頁面使用的HTML

在APP中使用web-view嵌入H5頁面使用web-view組件就可以實現(xiàn),代碼如下

<template>
	<view>
		<web-view src="https://uniapp.dcloud.io/static/web-view.html"></web-view>
	</view>
</template>

src是H5的地址,可以是任何網(wǎng)址,與APP的地址什么的沒有關系,也可以是www.baidu.com,在這里為了方便測試,使用官方的 H5地址官方原生h5 代碼如下

<!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)絡網(wǎng)頁</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;
      }
      .btn-yellow {
        background-color: #f0ad4e;
      }
      .desc {
        padding: 10px;
        color: #999999;
      }
      .post-message-section {
        visibility: hidden;
      }
    </style>
  </head>
  <body>
    <p class="desc">web-view 組件加載網(wǎng)絡 html 示例。點擊下列按鈕,跳轉(zhuǎn)至其它頁面。</p>
    <div class="btn-list">
      <button class="btn" type="button" data-action="navigateTo">navigateTo</button>
      <button class="btn" type="button" data-action="redirectTo">redirectTo</button>
      <button class="btn" type="button" data-action="navigateBack">navigateBack</button>
      <button class="btn" type="button" data-action="reLaunch">reLaunch</button>
      <button class="btn" type="button" data-action="switchTab">switchTab</button>
    </div>
    <div class="post-message-section">
      <p class="desc">網(wǎng)頁向應用發(fā)送消息,注意:小程序端應用會在此頁面后退時接收到消息。</p>
      <div class="btn-list">
        <button class="btn btn-red" type="button" id="postMessage">postMessage</button>
      </div>
    </div>
    <script type="text/javascript">
      var userAgent = navigator.userAgent;
      if (userAgent.indexOf('AlipayClient') > -1) {
        // 支付寶小程序的 JS-SDK 防止 404 需要動態(tài)加載,如果不需要兼容支付寶小程序,則無需引用此 JS 文件。
        document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');
      } else if (/QQ/i.test(userAgent) && /miniProgram/i.test(userAgent)) {
        // QQ 小程序
        document.write(
          '<script type="text/javascript" src="https://qqq.gtimg.cn/miniprogram/webview_jssdk/qqjssdk-1.0.0.js"><\/script>'
        );
      } else if (/miniProgram/i.test(userAgent) && /micromessenger/i.test(userAgent)) {
        // 微信小程序 JS-SDK 如果不需要兼容微信小程序,則無需引用此 JS 文件。
        document.write('<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"><\/script>');
      } else if (/toutiaomicroapp/i.test(userAgent)) {
        // 頭條小程序 JS-SDK 如果不需要兼容頭條小程序,則無需引用此 JS 文件。
        document.write(
          '<script type="text/javascript" src="https://s3.pstatp.com/toutiao/tmajssdk/jssdk-1.0.1.js"><\/script>');
      } else if (/swan/i.test(userAgent)) {
        // 百度小程序 JS-SDK 如果不需要兼容百度小程序,則無需引用此 JS 文件。
        document.write(
          '<script type="text/javascript" src="https://b.bdstatic.com/searchbox/icms/searchbox/js/swan-2.0.18.js"><\/script>'
        );
      } else if (/quickapp/i.test(userAgent)) {
        // quickapp
        document.write('<script type="text/javascript" src="https://quickapp/jssdk.webview.min.js"><\/script>');
      }
      if (!/toutiaomicroapp/i.test(userAgent)) {
        document.querySelector('.post-message-section').style.visibility = 'visible';
      }
    </script>
    <!-- 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('當前環(huán)境:' + JSON.stringify(res));
        });
        document.querySelector('.btn-list').addEventListener('click', function(evt) {
          var target = evt.target;
          if (target.tagName === 'BUTTON') {
            var action = target.getAttribute('data-action');
            switch (action) {
              case 'switchTab':
                uni.switchTab({
                  url: '/pages/tabBar/API/API'
                });
                break;
              case 'reLaunch':
                uni.reLaunch({
                  url: '/pages/tabBar/component/component'
                });
                break;
              case 'navigateBack':
                uni.navigateBack({
                  delta: 1
                });
                break;
              default:
                uni[action]({
                  url: '/pages/component/button/button'
                });
                break;
            }
          }
        });
        document.getElementById('postMessage').addEventListener('click', function() {
          uni.postMessage({
            data: {
              action: 'message'
            }
          });
        });
      });
    </script>
  </body>
</html>

在這里我們提取出關鍵的代碼

<!-- 需要把 uni.webview.1.5.4.js 下載到自己的服務器 -->   導入web-view 的SDK
    <script type="text/javascript" src="https://unpkg.com/@dcloudio/uni-webview-js@0.0.3/index.js"></script>

調(diào)用方法跳轉(zhuǎn)至app 的頁面的關鍵方法 uni.reLaunch

uni.reLaunch({
                  url: '/pages/tabBar/component/component'
                });

這個方法是跳轉(zhuǎn)到APP的指定頁面,url就是APP頁面的路徑,在APP項目中目錄結(jié)構(gòu)如下

對于這幾個跳轉(zhuǎn)方法可以自己去學習

              case 'switchTab':
                uni.switchTab({
                  url: '/pages/tabBar/API/API'
                });
                break;
              case 'reLaunch':
                uni.reLaunch({
                  url: '/pages/tabBar/component/component'
                });
                break;
              case 'navigateBack':
                uni.navigateBack({
                  delta: 1
                });
                break;

以上代碼可以解決APP嵌入原生H5頁面跳轉(zhuǎn)回APP的問題,但是使用uniapp開發(fā)H5就會失效,在uniapp開發(fā)H5頁面使用 uni.reLaunch 只能跳轉(zhuǎn)到H5項目本地的頁面。

解決方法如下

1. 下載官網(wǎng)web-view的SDK

在官網(wǎng)的原生H5 demo 導入了這個關鍵的Js文件,通過瀏覽器打開https://unpkg.com/@dcloudio/uni-webview-js@0.0.3/index.js

復制里面的JS代碼在H5項目里創(chuàng)建一個js文件 web-view.js,內(nèi)容即是以上js代碼

2. 在H5項目的main.js 文件里導入這個文件

3. 原生H5使用的跳轉(zhuǎn)方法和uniapp開發(fā)的H5使用的跳轉(zhuǎn)方法是不一樣的

uni.webView.reLaunch({
					url: '/pages/tabBar/component/component'
				});

區(qū)別在于 uniapp開發(fā)的H5要加上 webView

總結(jié)

到此這篇關于Uniapp中嵌入H5并在H5中跳轉(zhuǎn)到APP的指定頁面的文章就介紹到這了,更多相關Uniapp嵌入H5并跳轉(zhuǎn)到APP內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • JavaScript常用操作符代碼舉例

    JavaScript常用操作符代碼舉例

    這篇文章主要給大家介紹了關于JavaScript常用操作符的相關資料,包括條件運算符(?:)、空值合并(??)、可選鏈(?.)等,以及算術、賦值、比較、邏輯、位運算等,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-05-05
  • JS簡單實現(xiàn)查看文檔創(chuàng)建日期、修改日期和文檔大小的方法示例

    JS簡單實現(xiàn)查看文檔創(chuàng)建日期、修改日期和文檔大小的方法示例

    這篇文章主要介紹了JS簡單實現(xiàn)查看文檔創(chuàng)建日期、修改日期和文檔大小的方法,結(jié)合實例形式分析了JavaScript使用fileCreatedDate屬性、fileModifiedDate屬性、lastModified屬性和fileSize屬性相關操作技巧,需要的朋友可以參考下
    2018-04-04
  • JavaScript中日期格式化的實現(xiàn)方法

    JavaScript中日期格式化的實現(xiàn)方法

    這篇文章主要為大家詳細介紹了JavaScript中日期格式化的一些實現(xiàn)方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-01-01
  • 關于Promise 異步編程的實例講解

    關于Promise 異步編程的實例講解

    下面小編就為大家?guī)硪黄P于Promise 異步編程的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • JavaScript 封裝一個tab效果源碼分享

    JavaScript 封裝一個tab效果源碼分享

    本文給大家分享javascript封裝一個tab效果源碼分享,感興趣的朋友一起來看看吧
    2015-09-09
  • JavaScript中Array.from()的超全用法詳解

    JavaScript中Array.from()的超全用法詳解

    Array.from方法用于將兩類對象轉(zhuǎn)為真正的數(shù)組:類似數(shù)組的對象(array-like?object)和可遍歷(iterable)的對象(包括?ES6?新增的數(shù)據(jù)結(jié)構(gòu)?Set?和?Map),別忘記就來講講他的具體用法吧
    2023-03-03
  • 利用prop-types第三方庫對組件的props中的變量進行類型檢測

    利用prop-types第三方庫對組件的props中的變量進行類型檢測

    本篇文章主要介紹了利用prop-types第三方庫對組件的props中的變量進行類型檢測的相關知識,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-05-05
  • 微信小程序中限制激勵式視頻廣告位顯示次數(shù)(實現(xiàn)思路)

    微信小程序中限制激勵式視頻廣告位顯示次數(shù)(實現(xiàn)思路)

    本文給大家分享微信小程序中限制激勵式視頻廣告位顯示次數(shù),本文通過實例代碼來說明,感興趣的朋友跟隨小編一起看看吧
    2019-12-12
  • 微信小程序組件通信和behavior使用詳解

    微信小程序組件通信和behavior使用詳解

    behaviors是小程序中,用于實現(xiàn)組件間代碼共享的特性,類似于 Vue.js 中的 “mixins”,這篇文章主要介紹了微信小程序組件通信和behavior使用,需要的朋友可以參考下
    2022-08-08
  • JS實現(xiàn)的base64加密解密完整實例

    JS實現(xiàn)的base64加密解密完整實例

    這篇文章主要介紹了JS實現(xiàn)的base64加密解密,以完整實例形式分析了JavaScript基于base64編碼實現(xiàn)加密與解密的具體步驟與相關技巧,并附帶了相關的加密解密在線工具地址供大家參考,需要的朋友可以參考下
    2016-04-04

最新評論

紫金县| 乌兰察布市| 泰来县| 奉贤区| 荃湾区| 伊金霍洛旗| 城市| 册亨县| 永福县| 老河口市| 云浮市| 临夏县| 杭州市| 宜川县| 车致| 博罗县| 义乌市| 甘泉县| 西城区| 沾化县| 白银市| 庆云县| 夏邑县| 万年县| 青浦区| 巴彦淖尔市| 华阴市| 德昌县| 汤阴县| 公主岭市| 固镇县| 泰兴市| 宜川县| 修武县| 柞水县| 永靖县| 长汀县| 榆树市| 潢川县| 德钦县| 康平县|