午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > html5啟動原生APP總結(jié)

html5啟動原生APP總結(jié)

熱門標簽:高德地圖標注地點糾錯 平?jīng)龅貓D標注位置怎么弄 只辦理400電話 機器人外呼系統(tǒng)存在哪些能力 南昌仁和怎么申請開通400電話 如何獲取地圖標注客戶 電話機器人電銷系統(tǒng)掙話費 電話機器人黑斑馬免費 拓展地圖標注

許久沒有寫博客了,最近有個H5啟動APP原生頁面的需求,中間遇上一些坑,看了些網(wǎng)上的實現(xiàn)方案,特意來總結(jié)下

一、需要判斷客戶端的平臺以及是否在微信瀏覽器中訪問

1、客戶端判斷

在啟動APP時,Android和IOS系統(tǒng)處理的方式是不一樣的,Android這邊由于開放,可以在瀏覽器中通過<a>標簽以及meta標簽的方式,讓瀏覽器app獲取手機打開應用的權(quán)限進而啟動APP。

而在IOS這邊,IOS9以后的系統(tǒng),則可以在APP開發(fā)過程中加入配置和邏輯代碼編寫,系統(tǒng)在瀏覽器即將訪問到某個域名前就把這個域名對應的APP打開,這個有點閃,封閉還是有封閉的好處。

所以首先要在客戶端判斷,是Android系統(tǒng)還是IOS系統(tǒng),判斷代碼如下

function isInIos(){
    var userAgentInfo = navigator.userAgent ,
        Agents = ["iPhone" , "iPad", "iPod"];
    for(var v = 0; v < Agents.length; v++) {
        if (userAgentInfo.indexOf(Agents[v]) > 0) {
          return true;
        }
    }
    return false;
}        

2、是否在微信內(nèi)置瀏覽器中

無論是在哪個平臺的客戶端Android/IOS,在微信的平臺上訪問都有一個問題,那就是無法啟動客戶端,這是微信為了安全性考慮的限制,android這邊屏蔽schema協(xié)議,除非公司是微信的伙伴加入了白名單才能

使用,IOS系統(tǒng)可以去訪問app對應appstore的下載頁,但是微信經(jīng)常屏蔽appstore的這個網(wǎng)址,進而訪問不到。比較方便的做法就是在微信瀏覽器中,無論是IOS還是android都去應用寶的下載(IOS 這邊最后會到

appstore中)頁面打開。我這邊的需求是提示用戶點擊“...”用默認瀏覽器打開。

判斷是否是在微信中,代碼如下:

function isInWx(){
    var agent = window.navigator.userAgent.toLowerCase();
    return agent.match(/MicroMessenger/i) == 'micromessenger';
}

二、原理

首先無論是andorid還是IOS端,在瀏覽器中通過JS都是無法判斷該手機是否裝有某APP的,即使這個瀏覽器有權(quán)限讀取手機應用列表,也沒有一個固定的對外API讓咱們進行查詢。而H5啟動APP本質(zhì)上是通過

URL scheme打開APP,一個APP可以設(shè)置一個或多個打開自己的URL scheme,瀏覽器去訪問某一個APP的URL scheme,然后若系統(tǒng)安裝有這個APP,則會請求權(quán)限去打開這個APP。其實也算是瀏覽器app

打開另一個app,iOS就可以使用 UIApplication 的 canOpenUrl 方法來檢測URL scheme 是否能打開對應的APP,而android也是類似的方式。當然如果JS跳轉(zhuǎn)URL scheme沒有反應,也意味著這個手機沒有

裝這個app。

三、android平臺

首先編輯AndroidManifest.xml,主要是增加第二個<intent-filter>

<activity android:name=".activity.LoadingActivity"
      android:label="${APP_NAME}"
      android:screenOrientation="portrait"
      android:theme="@style/FirstActivityTheme">
      <intent-filter>
          <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <intent-filter>
          <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:host="android"
                android:scheme="wushang" />
      </intent-filter>
</activity>

比如此處wushang就是scheme,這個最好是app的唯一標識符,要不然在H5喚醒時,會出現(xiàn)一個選擇框,選擇啟動哪一個APP。而host表示啟動該頁面,其實這個更應該用com.android.sky這樣的包名來替代更好。

這樣的情況完整的URL就是wushang://android?data=sky,后面是參數(shù)傳遞。在Activity中可以用如下代碼獲取參數(shù)

public void onCreate(Bundle savedInstanceState) {             
     Uri uridata = this.getIntent().getData();             
     String mydata = uridata.getQueryParameter("data");            
}

之后在進行字符串截取還是什么鬼的都隨意啦。

接下來來談?wù)勄岸舜a,這里有兩種情況

1、頁面在刷新進入時,請求權(quán)限喚起APP

這個比較簡單,就只用在頁面的頂部head中加入meta標簽即可

<meta http-equiv="refresh" content="0;url=wushang://android?data=sky">

這個標注當頁面刷新即去訪問這個鏈接,進而啟動APP。但是存在一個問題,如果是蘋果系統(tǒng)的Safari瀏覽器的話,訪問有這個meta的頭,會給出錯誤提示,所以這個頭部可以在后端進行頁面渲染時通過客戶端的

總類在加上去。

2、通過點擊事件喚起APP

最簡單的辦法當然是直接使用a標簽,如下

<a href="wushang://android">open Android app</a>

但是在實際使用時,是需要對客戶端的平臺類型還有是否在微信內(nèi)置瀏覽器中進行判斷的,所以這樣的做法肯定是不行的。

接下來談?wù)勗陂_發(fā)過程中,遇到的一個問題,記錄下。因為這邊移動端使用的工具庫庫是zepto,采用的點擊事件是tap,但是在用tap進行處理是經(jīng)常要點很多下,才能喚起APP

<script type="text/javascript">
  $('#go').tap(function(){
      window.location.href = "wushang://android";
  });
</script>

具體原因不知,可能是tap事件采用的是輕點觸碰。然后摸索了下,才用click事件,或者直接在a標簽上標注處理函數(shù)就沒有這問題

<a id="go" >
    open Android app
</a>
<a href="javascript:startApp()">
   open
</a>
<script src="../res/lib/zepto.min.js"></script>
<script src="../res/lib/public.js"></script>
<script>
    $('#go').click(function () {
       if(publicFun.isIos()){
          alert('it is IOS')
       }else{
          window.location.href = "wushang://android";
       }
    });

    function startApp(){
       if(publicFun.isIos()){
          alert('it is IOS')
       }else{
          window.location.href = "wushang://android";
       }
    }
</script>

所以決定以后遇到這類問題,就用這兩種方式了。下面是實際的處理函數(shù)

 window.startApp = function(){     //啟動APP
     if(publicFun.isInWx()){     //微信中
        alert("請在瀏覽器中打開");
     }else{      //非微信中
        if(publicFun.isIos()){    //IOS系統(tǒng),直接去itunes中,既可以下載也可以打開
            window.location.href = "https://itunes.apple.com/cn/app/[name]/id[id]";
        }else{      //android系統(tǒng),通過定時器的方式,判斷是否安裝有APP
            var hasApp = true , t = 1000;
            setTimeout(function () {  //沒有安裝APP則跳轉(zhuǎn)至應用寶下載,延時時間設(shè)置為2秒
              if(!hasApp) window.location.href = "http://a.app.qq.com/o/simple.jsp?pkgname=[name]";
            } , 2000);
            var t1 = Date.now();
            window.location.href = "wushang://android";
            setTimeout(function () {    //t的時間就是出發(fā)APP啟動的時間,若APP啟動了,再次返回頁面時t2這行代碼執(zhí)行,hasApp即為true。反之若APP沒有啟動即為false
              var t2 = Date.now();
              hasApp = !(!t1 || t2 - t1 < t + 150);
            } , t);
        }
     }
  } 

其實有個非常簡單的辦法,就是直接跳轉(zhuǎn)應用寶。無論是在android還是IOS,以及微信非微信。應用寶的下載頁面都有下載和打開兩個功能(如果是在IOS平臺,它是通過連接app store的方式)

 四、IOS平臺

針對ios9及以上的打不開問題,實際上ios9提供了更好的解決方案————通用鏈接。

這是iOS9推出的一項功能,如果你的應用支持Universal Links(通用鏈接),那么就能夠方便的通過傳統(tǒng)的HTTP鏈接來啟動APP(如果iOS設(shè)備上已經(jīng)安裝了你的app,不需要額外做任何判斷等),或者打開網(wǎng)頁(iOS設(shè)備上沒有安裝你的app)。或許可以更簡單點來說明,在iOS9之前,對于從各種從瀏覽器,Safari、UIWebView或者 WKWebView中喚醒APP的需求,我們通常只能使用scheme。

以上來自網(wǎng)上關(guān)于通用鏈接的介紹,對于前端簡單點講就是你訪問一個http的url,如果這個url帶有你提交給開發(fā)平臺的配置文件中匹配規(guī)則的內(nèi)容,ios系統(tǒng)會去嘗試打開你的app,如果打不開,系統(tǒng)就會在瀏覽器中轉(zhuǎn)向你要訪問的鏈接。很好的一個屬性,因為通過這個屬性在ios9上我們能夠繞過微信的攔截從而打開app。

所以上面的點擊事件,僅僅是去訪問app store,因為若app已安裝,在瀏覽器訪問時,就已經(jīng)去到APP中了。

這些都是IOS配置上的東西,就不多寫了。至于傳參,以及頁面定向,其實也就是相當于在UIWebView中獲取當前連接的URL,然后進行字符串拆分以及校驗,即可判斷去哪個頁,以及獲取參數(shù)值。

到此這篇關(guān)于html5啟動原生APP總結(jié)的文章就介紹到這了,更多相關(guān)html5啟動原生APP內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

標簽:青島 漯河 池州 新疆 西藏 遼源 永州 棗莊

巨人網(wǎng)絡(luò)通訊聲明:本文標題《html5啟動原生APP總結(jié)》,本文關(guān)鍵詞  html5,啟動,原生,APP,總結(jié),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《html5啟動原生APP總結(jié)》相關(guān)的同類信息!
  • 本頁收集關(guān)于html5啟動原生APP總結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产精品99久久久久久宅男| 久久琪琪电影院| 丝袜美腿亚洲一区| 九九九久久国产免费| 国产精品久久久久aaaa| 日日摸天天添天天添破| r级无码视频在线观看| 久久精品男人天堂| 国产深喉视频一区二区| 国产 福利 在线| 欧美三级xxx| 亚洲欧美日韩精品一区| 久久99日本精品| 国产精品私拍pans大尺度在线| 粉嫩精品一区二区三区在线观看| 欧美国产日产图区| 一级黄色片网址| 97久久精品人人澡人人爽缅北| 国产按摩一区二区三区| 欧美一区二区三区电影在线观看| 日本韩国精品在线| av网站中文字幕| 国产精品91在线| 久久精品亚洲精品国产欧美kt∨ | 无码精品国产一区二区三区免费| 亚洲美女久久久| 成a人片国产精品| 天天影视综合色| 欧美亚洲伦理www| 午夜影院久久久| 日韩在线电影一区| 日韩女在线观看| 中国人与牲禽动交精品| 久久精品91久久久久久再现| 欧洲一区二区视频| 成人精品视频99在线观看免费| 国产福利视频一区二区| 精品无人区乱码1区2区3区在线| 人妻无码一区二区三区久久99 | 色综合久久久久综合99| 国产免费的av| 亚洲国产精品日韩| 亚欧在线观看视频| 日韩精品一区二区三区外面| 中国女人真人一级毛片| 国产传媒一区二区| 日韩欧美亚洲国产另类| 九九九久久久精品| 人妻av一区二区| 国产精品日韩一区| 亚洲伊人色欲综合网| 99热这里只有精品9| 激情伦成人综合小说| 精品美女一区二区三区| 在线观看欧美日韩国产| 欧美成人女星排行榜| 丝袜亚洲另类丝袜在线| av加勒比在线| 这里只有精品免费视频| 国产在线久久久| 国a精品视频大全| 欧美吞精做爰啪啪高潮| 国内老熟妇对白hdxxxx| 久久综合一区| 久久久综合网站| 国产美女精彩久久| 久久电影国产免费久久电影| 黑人操日本美女| 国产二级片在线观看| 国产做受69高潮| 一区二区三区日韩精品视频| 国产精品人妻一区二区三区| 91亚洲一区二区| 精品sm捆绑视频| 视频一区在线播放| 亚洲熟妇无码av| 精品国产一二| 亚洲精品有码在线| 疯狂蹂躏欧美一区二区精品| 不卡一卡二卡三乱码免费网站| 日本 欧美 国产| 久久国产免费视频| 日干夜干天天干| www.av成人| 日韩欧美黄色大片| 欧美黄色免费影院| 青娱乐精品在线| 自拍偷拍亚洲精品| 一区二区三区四区视频| 精品日韩中文字幕| 亚洲国产精品一区二区www| 欧美一区二区高清| 亚洲综合大片69999| 午夜免费精品视频| 日韩一区二区三区四区视频| 亚洲天堂手机版| 亚洲无码精品在线播放| 免费看污视频的网站| 天天综合久久综合| 伊人久久亚洲综合| 亚洲黄色在线免费观看| 国产精品熟妇一区二区三区四区| 国产嫩草一区二区三区在线观看| 亚洲片av在线| 欧美视频在线观看 亚洲欧| 亚洲激情综合网| 一区二区视频免费在线观看| 久久国产精品第一页| 免费不卡av网站| 91精品国产高清自在线| 欧美日韩一区二区在线视频| 少妇性l交大片| 日韩电影天堂视频一区二区| 九9re精品视频在线观看re6 | 欧美精品七区| 国产精品电影一区| 韩国精品久久久999| 欧美激情2020午夜免费观看| 国产一区二区激情| 亚洲人成在线观| 久99九色视频在线观看| 久久久伊人欧美| 亚洲成人久久精品| 国产精品你懂的在线| 麻豆精品一区二区三区视频| 欧美一级免费看| 在线精品视频一区二区| 色8久久精品久久久久久蜜| 一区二区三区成人在线视频| 中文字幕巨乱亚洲| 91麻豆国产福利精品| 美腿丝袜亚洲一区| 久久人人精品| 亚洲综合成人av| 久久福利免费视频| aaaaaa亚洲| 国产精品91在线观看| 欧美精品一区在线播放| 日韩成人一级大片| 欧美日韩一级黄色片| 影音先锋黄色网址| 五月天丁香视频| 婷婷伊人综合中文字幕| 国产 欧美 自拍| 欧洲成人一区二区三区| 亚洲av成人无码久久精品老人 | 欧美中文字幕在线播放| 国产精品成人v| 成年人三级视频| 精品亚洲视频在线| 人妻体体内射精一区二区| 日韩 欧美 高清| 亚洲在线第一页| 国产激情久久久| 《视频一区视频二区| 免费观看在线色综合| 国产精品久久影院| 欧美一区二区人人喊爽| 亚洲精品按摩视频| 色吧影院999| 国产精品www色诱视频| 亚洲自拍偷拍色图| 日本精品福利视频| av av在线| 日日夜夜免费精品视频| 视频在线在亚洲| 久久一区亚洲| 成人免费看的视频| 综合激情成人伊人| 亚洲国产精品一区二区尤物区| 久久天堂av综合合色| 亚洲电影在线免费观看| 97在线视频免费看| 少妇被狂c下部羞羞漫画| 少妇高潮 亚洲精品| 99精品1区2区| 风间由美一区二区三区在线观看| 成人美女在线观看| 91在线国产观看| 亚洲日本在线天堂| 欧美日韩国产免费一区二区 | 性欧美大战久久久久久久免费观看| 高清视频一区| 日本一区二区在线视频| 欧美做受777cos| 激情综合网婷婷| 国产高潮视频在线观看| 亚洲欧美精品aaaaaa片| 欧美性猛交xxxx乱大交hd| 中文字幕一区二区三区四区免费看 | 亚洲 欧美 精品| 欧美黄色一区二区三区| 国产性xxxx高清| 欧美一区免费看| 欧美一区二区三区黄片| 国产91精品一区二区| 国产精品三级在线观看| 在线精品视频免费观看| 亚洲精品av在线播放| 欧美乱大交做爰xxxⅹ性3| 国产精品久久一区主播| 欧美凹凸一区二区三区视频| 黄色成人在线看| 国产xxxx视频| 中文字幕av免费观看| 久久精品国产精品亚洲综合| 国产精品久久免费看| 欧美精品免费视频| 欧美精品成人91久久久久久久| 国产亚洲情侣一区二区无| 无遮挡又爽又刺激的视频| 日韩在线观看免| 免费观看的毛片| 久久视频一区二区| 欧美日产在线观看| 久久久久成人精品| 亚洲一区二区三区精品视频| 亚洲精品理论片| 黑人精品一区二区| 1000精品久久久久久久久| 亚洲国产成人精品久久久国产成人一区| 欧美一区在线直播| 欧美爱爱视频免费看| 日韩一级片大全| 日本在线不卡一区| 香蕉久久一区二区不卡无毒影院| 久久精品国产精品亚洲| 欧美精品欧美精品| 成人免费无码大片a毛片| 国产99视频在线| 亚洲欧美激情插| 亚洲天堂av高清| 国产免费一区二区三区| 亚洲精品乱码久久久久久动漫| 自拍偷拍校园春色| 91美女在线观看| 久久免费成人精品视频| 久久婷五月综合| 老司机午夜精品| 日韩在线欧美在线| 青娱乐精品在线| 成人国产免费视频| 欧美亚洲另类制服自拍| 黄色在线观看av| 成人精品小蝌蚪| 久久国产精品亚洲| 九九精品久久久| 美女免费视频一区| 中文字幕亚洲欧美日韩2019| 国产九九热视频| 国内精品免费在线观看| 久久久精品美女| 女性生殖扒开酷刑vk| 久久久xxx| 欧美精品色一区二区三区| 国产精品免费视频一区二区| 国产馆在线观看| 久久久噜噜噜久久中文字幕色伊伊 | 国产精品露脸自拍| 91传媒理伦片在线观看| 激情欧美一区二区| 亚洲黄色片网站| 91免费黄视频| 丝袜美腿成人在线| 色悠悠久久久久| 午夜大片在线观看| 成人av在线一区二区三区| 欧美精品一区二区免费| 成年人一级黄色片| 91精品国产色综合| 国产二级一片内射视频播放| 中文字幕一区二区三区在线播放 | 丰满人妻一区二区三区无码av| 日韩成人激情视频| 色呦色呦色精品| jlzzjlzz亚洲日本少妇| 国产主播在线一区| 姑娘第5集在线观看免费好剧| 欧美va亚洲va香蕉在线| 一起操在线视频| 国产精品美女久久久久久| 日本精品免费| 美女视频免费一区| 国产不卡视频在线| 久久久999久久久| 久久久成人精品视频| 欧美h片在线观看| 欧美日韩国产经典色站一区二区三区 | 色呦呦视频在线| 45www国产精品网站| 国产www在线| 欧美成人第一页| 青青草原在线免费观看视频| 欧美日韩国产系列| 成人免费播放视频| 精品国产乱码久久久久酒店| 日本在线免费观看一区| 久久免费看少妇高潮| 精品一卡二卡三卡四卡日本乱码| 久久精品官网| 国产厕所精品在线观看| 国产美女视频一区| 久久精品www人人爽人人| 色偷偷成人一区二区三区91| 国产又大又黄又粗又爽| 国产精品久久网站| 久久久999视频| 亚洲成人免费视频| 久久黄色一级视频| 亚洲深夜福利网站| 少妇人妻互换不带套| 视频在线观看一区| 亚洲一二三四在线观看| 亚洲成色www.777999| 国产精品素人一区二区| 99在线免费视频观看| 中文字幕一区二区三区在线播放 | 国产成人精品免费看视频| 日韩极品视频在线观看| 另类色图亚洲色图| 日本一区二区高清| 久久精品国产亚洲av高清色欲 | 国产精品久久久久三级| 日韩成人高清视频| 日韩视频在线免费播放| 亚洲福利视频免费观看| 亚洲男人第一天堂| 黄色免费网址大全| 欧美诱惑福利视频| 自拍av一区二区三区| 六月丁香婷婷综合| 搞av.com| 欧美精品videofree1080p| 中文字幕视频一区二区三区久| 日本熟妇色xxxxx日本免费看| 亚洲一区二区三区乱码| 精品国产乱码久久久久久久久| 精品国产午夜福利| 国产精品免费一区二区三区在线观看 | 亚洲国产高清在线观看视频| 亚洲精品乱码久久久久久9色| 伊人伊成久久人综合网小说 | 国产精品私拍pans大尺度在线| 天堂va蜜桃一区二区三区| 欧美最大成人综合网| 国产婷婷精品av在线| ass极品水嫩小美女ass| 欧美男女性生活在线直播观看| 国产高清视频免费在线观看| 国产福利精品av综合导导航| 亚洲精品国产高清久久伦理二区 | 欧美亚洲国产视频小说| 欧美日韩免费观看一区二区三区| 国产乱码精品1区2区3区| 人妻av无码一区二区三区| 欧美成人精品在线播放| 麻豆成人在线观看| 18岁网站在线观看| 欧美高清dvd| 日韩精品欧美成人高清一区二区| 国产在线免费av| 久久久久免费看黄a片app| 美女视频黄免费的亚洲男人天堂| 欧美日韩精品在线视频| 久久久噜噜噜久久中文字幕色伊伊 | 波多野结衣一区二区三区在线 | 亚洲欧美激情在线| 国产激情久久久久久熟女老人av| 污污视频网站免费观看| 91a在线视频| 777午夜精品视频在线播放| 国产成a人亚洲| 国产性xxxx| 免费在线观看毛片网站| 久久精视频免费在线久久完整在线看 | 日韩av一二三区| 九九热99视频| 亚洲人成人77777线观看| 久久久久久国产三级电影| 亚洲色图在线视频| 波多野结衣一区二区三区四区| 男人添女人荫蒂国产| 亚洲一区在线免费| 美女啪啪无遮挡免费久久网站| 黑人巨大精品欧美一区| 久久久久国产精品区片区无码| 9色视频在线观看| 韩日欧美一区二区| 亚洲第一精品夜夜躁人人爽 | 亚洲高清在线观看| 九九视频精品免费| 在线观看黄网址| 亚洲春色综合另类校园电影| 青草青草久热精品视频在线网站| 欧美精三区欧美精三区| 国产欧美一区二区精品性色| 国产免费www| 色婷婷一区二区三区av免费看| 成人激情视频在线| 亚洲品质视频自拍网| 欧美唯美清纯偷拍| 亚洲视频在线观看三级| 日本一区二区视频在线| 国产精品女人久久久| 亚洲精品乱码久久久久久久| 亚洲欧美精品| 国产伦精品一区二区三| 国产成人精品午夜| 精品视频一区 二区 三区| 久热精品在线|