日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

wap ios android,wap 唤起App 的两种方式Schema Universal Link

發布時間:2023/12/29 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 wap ios android,wap 唤起App 的两种方式Schema Universal Link 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、schema

現在線上大多數 App 使用的就是 schema 跳轉,都對應一套路由法則,基本都能做到跳轉到 App 內任一界面。

location.href?=?'schema://xxxx'

但 schema 有個弊端:

iOS中,如果用戶沒有安裝App,那么他一定會經歷2個事情:

1、schema打開app,但是失敗,延遲后,跳轉下載App

2、跳轉下載App之前schema會彈個可惡的跳轉失敗的框,然后再延遲后彈跳轉AppStore的框

再就是 schema 被微信等應用禁止跳轉了。

2、Universal Link

Universal Link和 schema 一樣,目前還未被微信等禁止,也不會彈出跳轉失敗的彈出框。

Universal Link實現過程

1、一個支持 SSL 訪問的域名,且不能是自建證書的 https 域名

2、新建一個apple-app-site-association文件,上傳到域名根目錄下,或 .well-known 文件夾下,

apple-app-site-association文件內容是一個 json

{

"applinks":

{

"apps":[],

"details":[

{

"appID":"ABCDEFG.com.aaa.bbb.ccc",

"paths":["NOT /aaaa/*","/iosuniversallink/*"]

},

{

"appID":"GFEDCBA.com.aaa.bbb.ccc",

"paths":["NOT /aaaa/*","/iosuniversallink/*"]

}

]

}

}

appId 為 teamId + boundleId

paths 為域名下可識別或不可識別的 path 路徑, 如 https://www.xxx.com/iosuniversallink/*, 就可以喚起 app, 而 https://www.xxx.com/aaaa/xxxxx則直接跳轉到 web 頁了。

3、配置iOS App工程

開發者中心證書打開Associated Domains

工程配置Associated Domains

將你apple-app-site-association所在域名配置進去

給你的工程像Schema的OpenUrl一樣,編寫App被喚醒后的處理邏輯

4、Universal Link的基本運作流程

APP第一次啟動 or APP更新版本后第一次啟動

APP向工程里配置的域名發起Get請求拉取apple-app-association Json File

APP將apple-app-association注冊給系統

由任意webview發起跳轉的url,如果命中了apple-app-association注冊過的通用鏈接

打開App,觸發Universal Link delegate

沒命中,webview繼續跳轉url

在你進行apple-app-association 以及 App工程的配置之后,整個Universal Link的運作流程完全由系統控制了

Universal Link 跨域

Universal Link有跨域問題,Universal Link必須要求跨域,如果不跨域,就不行,就失效,就不工作。(iOS 9.2之后的改動)

假如當前網頁的域名是 A

當前網頁發起跳轉的域名是 B

必須要求 B 和 A 是不同域名,才會觸發Universal Link

如果B 和 A 是相同域名,只會繼續在當前WebView里面進行跳轉,哪怕你的Universal Link一切正常,根本不會打開App

產品需求

如果已安裝App,跳轉對應界面

如果沒安裝App,跳轉App下載界面

已安裝App

打開App 觸發handleUniversalLink

走到/_iosuniversallink/分支,拼接出任意App內的界面路由

跳轉界面

未安裝App

WebView原地跳轉https://xxx.xxx.xxx/_iosuniversallink/*

命中服務器的重定向邏輯

重定向到AppStore跳轉頁面

打開AppStore下載

如果已安裝App,跳轉對應界面

如果沒安裝App,跳轉App下載界面

解決了舊Schema模式下的弊端問題:

Schema無法判斷是否安裝App,只能采用setTimeout的Trick方式

Schema的Trick方式會有一個丑陋的錯誤跳轉彈框

Schema無法在微信/手百等App內,打開我們自己的App

簡單的說,這樣設計的初衷就是,我不為了通用鏈接這一目的來使用Universal Link,來統一WAP&APP的URL跳轉,我就為了把Universal Link當做加強版Schema來使用

總結

以上是生活随笔為你收集整理的wap ios android,wap 唤起App 的两种方式Schema Universal Link的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。