1. 程式人生 > 實用技巧 >html與app互動

html與app互動

1,h5喚醒app方式

參考:https://zhuanlan.zhihu.com/p/71682493

喚醒方式列表

  • URL Schemes
  • chrome intent
  • ios UniversalLink / android appLink

常見喚醒媒介

  • iframe
  • a 標籤
  • window.location

URL Scheme

組成

[scheme:][//authority][path][?query]比如:tuyasmart://home?test=1

是什麼

URL Schemes可以理解為一種特殊的URL用來定位一個應用以及應用內的某個功能,類比網頁連結便很容易理解

  • Schemes表示的是URL中的一個位置 -最初始的位置
    ,既://之前的字元,比如https://www.apple.comSchemes就是https

通過URL Schemes, 我們就可以像定位一個網頁一樣,定位一個應用甚至應用內的某個具體的功能。而定位是哪個應用的,就是Schemes部分。比如簡訊應用的Schemes就是:sms

我們完全可以按照理解一個網頁的URL來理解一個應用的URL

| | 網頁(蘋果)| 應用(微信)| | 網站首頁/開啟應用 || weixin:// | | 子頁面/具體功能 |(Mac應用頁) | weixin://dl/moments(朋友圈)|

注意點

- 應用是否支援URL Schemes要看App開發者有沒有寫那部分的程式碼了 -URL Schemes不唯一

使用

使用方式十分簡單,就像我們開啟一個連結一樣,常見的有

  • location.href
  • iframe
  • a標籤

使用中常見問題及解決方案

  • 可能會被app禁掉,比如微信,qq等
  • ios9+ 禁止掉了iframe方式。
  • ios及部分安卓瀏覽器會提示使用者是否開啟App,並且ios在未安裝對應App的時候,會提示“打不開網頁,因為該網址無效”
  • h5無法感知是否喚醒成功
  • 大部分瀏覽器需要使用者手動觸發連結,js自動觸發無效

針對被app禁止掉的情況,通常會判斷是否微信等app環境,然後提示使用者瀏覽器內開啟 針對ios9+iframe

被禁掉的情況,判斷下ios版本 針對h5無法感知是否喚醒成功的解決辦法是,一段時間之後自動跳轉下載頁,或者是依賴setTimeout在瀏覽器進入後臺後進程切換導致的時間延遲判斷。

2,html和app互動的jssdk的原始碼

在app中開啟的頁面是可以使用 url scheme跳轉或者請求app的