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

H5喚醒APP實現(xiàn)方法及注意點總結(jié)

 更新時間:2021年06月17日 15:55:26   作者:土家肸哥  
目前通過H5頁面喚起App的場景十分常見,比如常見的分享功能,這篇文章主要給大家介紹了關(guān)于H5喚醒APP實現(xiàn)方法及注意點的相關(guān)資料,需要的朋友可以參考下

前言

作為前端開發(fā)人員經(jīng)常會有這樣的需求,如果某個用戶安裝了自己的APP就打開APP首頁或則指定頁面,如果沒有安裝APP就跳轉(zhuǎn)到相應(yīng)下載頁面。這樣的一個需求也是拉新和裂變必不可少的環(huán)節(jié),所以是需要我們?nèi)ソ鉀Q的。今天來看看到底如何實現(xiàn)呢?

跳轉(zhuǎn)APP方式

目前實現(xiàn)該功能的有兩種比較好的方式:URL Scheme、meta標簽和Universal Links。

URL Scheme

URL Scheme就是一個可以讓app相互之間可以跳轉(zhuǎn)的對外接口。通過給APP定義一個唯一的URL路徑來從外部快速的打開這個指定的APP,每個app的URL Scheme都是不一樣的,如果存在一樣的URL Scheme,那么系統(tǒng)就會響應(yīng)先安裝那個app的URL Scheme,因為后安裝的app的URL Scheme被覆蓋掉了,是不能被調(diào)用的。URL scheme的格式是:

[scheme]://[host]/[path]?[query]

介紹幾個常用的URL Scheme平臺:

  • QQ: mqq://
  • 微信: weixin://
  • 騰訊微博: TencentWeibo://
  • 淘寶: taobao://
  • 支付寶: alipay://
  • 微博: sinaweibo://

同時支持Android和iOS平臺

meta標簽

在網(wǎng)頁上設(shè)置meta標簽,使用safari打開的時候,就會在頂部顯示自己app的導航條。如果沒有安裝app點擊能夠跳轉(zhuǎn)到appstore去下載,如果安裝了app就能直接通過頂部的meta標簽喚醒app了。

iOS獨有

Universal Links

Universal Links就是一個通用鏈接,iOS9以上的用戶,可以通過點擊這個鏈接無縫的重定向到一個app應(yīng)用,而不需要通過safari打開跳轉(zhuǎn)。如果用戶沒有安裝這個app,則會在safari中打開這個鏈接指向的網(wǎng)頁。

iOS獨有并且是iOS9.0才出的

各種方式的使用

URL Scheme和Universal Links都是需要配置的,只有配置了才能有作用。

URL Scheme使用

URL Scheme的使用方式不難,最簡單的使用方式就是添加一個a標簽鏈接即可:

<a href="weixin://" rel="external nofollow" >打開微信</a>

這種方式訪問是比較簡單的,安卓和IOS都可以使用,但是在微信端就不行了,微信端設(shè)置了白名單,完全屏蔽了URL Scheme 用法,除非加入了白名單,像京東就可以直接打開,否則是不可能的。

meta標簽使用

meta標簽的方式也很簡單只需要在網(wǎng)頁中添加meta標簽即可:

 <meta charset="UTF-8" name="apple-itunes-app" content="app-id=7777777, affiliate-data=myAffiliateData, app-argument=yourScheme://">

效果就是在網(wǎng)頁的頂部顯示一個置頂條。

Universal Links使用

這種方式配置有點麻煩,本人也沒有接觸過iOS的開發(fā)所以就給大家一個官方網(wǎng)站的介紹了

總結(jié)

上面的每一種方式都不能完美的解決,要么只有蘋果支持,要么會有很多頭部APP限制,所以需要自己來做很多其它工作才能適配。

首先我們要確認采取哪一種方式,綜合以上介紹唯有第一種URL Scheme的方式應(yīng)該是算是最優(yōu)的選擇了畢竟兩個平臺都支持,接下倆就是如何解決在頭部APP里面如何打開,其實這個問題通常都是提示用戶在外部瀏覽器中打開,所以這樣基本就解決了這個難題,下面就用代碼來一步步實現(xiàn)。

實現(xiàn)喚醒APP功能

提示瀏覽器打開

首先需要實現(xiàn)一個在瀏覽器打開的小提示如下:

實現(xiàn)判斷頭部APP的功能

這里就是通過瀏覽器的User-Agent來判斷是否為微信或則其它APP瀏覽器,代碼如下:

/**
 * 判斷瀏覽器是否為頭部APP
 */
function isBlackApp() {
  var u = navigator.userAgent.toLowerCase();
  return /micromessenger/i.test(u) || u.indexOf("weibo") > -1 || u.indexOf("qq") > -1 || u.indexOf('mqqbrowser') > -1;
}

上面的函數(shù)判斷了幾種瀏覽器,微信、微博、QQ、QQ瀏覽器。如果點擊打開或則下載按鈕時就判斷是否為頭部APP,如果是則提示在瀏覽器打開否則直接打開自己的APP即可,代碼如下:

function openTuer() {
  if (isBlackApp()) {
    // 頭部APP讓網(wǎng)頁顯示提示在瀏覽器中打開
    showTips();
  } else {
    // 不是頭部APP就直接打開,這里大家開始可以不用參數(shù),后面寫好再來添加即可
    openApp(0, 0);
  }
}

喚醒APP的核心方法

上面也提到了openApp這個函數(shù),那么具體是什么樣的呢,這里我們就來看看如何去實現(xiàn)這個函數(shù)。這里按照目前自己的項目需求就是打開APP需要兩個參數(shù)一個是打開APP的某一個頁面which,一個是打開某個頁面需要的參數(shù)arg。所以我們的openApp函數(shù)才需要兩個參數(shù)。

openApp的實現(xiàn)

openApp這個函數(shù)很簡單就是調(diào)用兩個函數(shù)如下:

function openApp(which, arg) {
    jumpApp("testApp://which=" + which + "&arg=" + arg);
    noApp();
}

第一個函數(shù)就是負責打開APP的,第二個負責如果沒有打開APP或沒有安裝APP時跳轉(zhuǎn)的地址處理。

jumpApp的實現(xiàn)

這個函數(shù)的實現(xiàn)要注意iOS8之前是可以使用iframe來實現(xiàn)的,但是之后的就不行了,被蘋果屏蔽了,所以只能通過頁面跳轉(zhuǎn)了,具體代碼如下:

function jumpApp(t) {
  try {
    var e = navigator.userAgent.toLowerCase(),
      n = e.match(/cpu iphone os (.*?) like mac os/);
    if (((n = null !== n ? n[1].replace(/_/g, ".") : 0), parseInt(n) >= 9)) {
      window.location.href = t;
    } else {
      var r = document.createElement("iframe");
      (r.src = t), (r.style.display = "none"), document.body.appendChild(r);
    }
  } catch (e) {
    window.location.href = t;
  }
}

noApp的實現(xiàn)

noApp的實現(xiàn)也很簡單就是定義一個定時器,如果在某個時間段內(nèi)沒啥反應(yīng)就跳轉(zhuǎn)到指定的下載頁面即可。具體代碼如下:

var timer = null;
function noApp() {
  var t = Date.now(),
    r = "http://www.tuerapp.com";
  timer = setTimeout(function() {
    return Date.now() - t > 2200
      ? (clearTimeout(timer), !1)
      : !document.webkitHidden && !document.hidden && void (location.href = r);
  }, 2000);
}

到此就實現(xiàn)了基本的功能了,實際過程中可能還有很多問題存在

總結(jié)

到此這篇關(guān)于H5喚醒APP實現(xiàn)方法及注意點的文章就介紹到這了,更多相關(guān)H5喚醒APP方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 微信小程序?qū)崿F(xiàn)性別單選效果

    微信小程序?qū)崿F(xiàn)性別單選效果

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)性別單選效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • JavaScript使用pdf-lib在瀏覽器里實現(xiàn)PDF合并與拆分功能

    JavaScript使用pdf-lib在瀏覽器里實現(xiàn)PDF合并與拆分功能

    本文介紹了pdf-lib庫,這是一個輕量級的JavaScript庫,可在瀏覽器和Node.js環(huán)境中操作PDF文檔,pdf-lib支持合并、拆分、旋轉(zhuǎn)、填寫表單等多種功能,無需依賴后端服務(wù)且體積小巧,還提供了實戰(zhàn)案例供開發(fā)者參考,需要的朋友可以參考下
    2026-05-05
  • 微信小程序使用picker組件出現(xiàn)的問題探究

    微信小程序使用picker組件出現(xiàn)的問題探究

    這篇文章主要介紹了微信小程序自定義可搜索的picker組件,主要包括自定義可搜索的picker組件的代碼以及調(diào)用實例,這里的搜索框使用的是vant微信小程序組件庫,picker使用的微信小程序的原生組件,需要的朋友可以參考下
    2023-01-01
  • js 獲取網(wǎng)絡(luò)圖片的高度和寬度的實現(xiàn)方法(變通了下)

    js 獲取網(wǎng)絡(luò)圖片的高度和寬度的實現(xiàn)方法(變通了下)

    簡單地說就是把圖片放入一個自動伸縮的DIV中,然后獲取DIV的寬和高!這個不錯的變通,大家可以參考下。
    2009-10-10
  • javascript實現(xiàn)驗證IP地址等相關(guān)信息代碼

    javascript實現(xiàn)驗證IP地址等相關(guān)信息代碼

    本文給大家分享的是一組判斷IP地址是否合法,判斷子網(wǎng)掩碼是否合法,驗證輸入的網(wǎng)關(guān)地址是否合法的javascript代碼,十分的簡單實用,有需要的小伙伴可以參考下。
    2015-05-05
  • JavaScript中DOM和BOM的區(qū)別與用處詳解

    JavaScript中DOM和BOM的區(qū)別與用處詳解

    這篇文章主要介紹了JavaScript中DOM和BOM的區(qū)別與用處,DOM和BOM是前端開發(fā)中常用的兩個概念,它們分別表示不同的對象模型,用于操作瀏覽器的不同部分,了解它們的區(qū)別和用處,有助于在前端開發(fā)中靈活使用?JavaScript?操作頁面和瀏覽器,需要的朋友可以參考下
    2024-09-09
  • javascript動畫之模擬拖拽效果篇

    javascript動畫之模擬拖拽效果篇

    其實javascript本身是具有原生拖放功能的,但是由于兼容性問題,以及功能實現(xiàn)的方式,用的不是很廣泛。javascript動畫廣泛使用的還是模擬拖拽。本文將詳細介紹javascript的模擬拖拽,有需要的可以參考借鑒。
    2016-09-09
  • javascript中的startWith和endWith的幾種實現(xiàn)方法

    javascript中的startWith和endWith的幾種實現(xiàn)方法

    javascript中的startWith和endWith的幾種實現(xiàn)方法,需要的朋友可以參考一下
    2013-05-05
  • JS模擬實現(xiàn)串行加法器

    JS模擬實現(xiàn)串行加法器

    這篇文章主要為大家詳細介紹了JS模擬實現(xiàn)串行加法器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • js/jQuery對象互轉(zhuǎn)(快速操作dom元素)

    js/jQuery對象互轉(zhuǎn)(快速操作dom元素)

    在操作js或者jquery方面相關(guān)的元素時,可能會力不從心,因為在使用方法時可能js的會更好一點又或者jquery的會更好一點,真是無從選擇啊,接下來將介紹JS/jQuery對象互轉(zhuǎn)實現(xiàn),方便你快速操作dom元素,感興趣的朋友可以了解下啊
    2013-02-02

最新評論

肇庆市| 泸定县| 神农架林区| 密云县| 凤阳县| 赤峰市| 东源县| 万全县| 龙里县| 彩票| 罗源县| 西贡区| 神农架林区| 曲沃县| 十堰市| 班玛县| 崇明县| 邵阳市| 正蓝旗| 铜陵市| 白朗县| 和林格尔县| 深圳市| 龙州县| 福泉市| 焉耆| 五莲县| 平武县| 阳山县| 盖州市| 昌都县| 丰原市| 乌拉特前旗| 宾川县| 丹东市| 黄石市| 汕头市| 建瓯市| 伊春市| 台南市| 陇西县|