Universal links 使用

從外部跳轉(zhuǎn)到APP內(nèi)部有兩種方式
1、Universal Links
2、schema

一、Universal Links

tips: 這個(gè)文章是給已經(jīng)創(chuàng)建有現(xiàn)成的app的開發(fā)者看的,如果沒有創(chuàng)建app,請(qǐng)先去創(chuàng)建app。

工作原理:
在安裝某個(gè)app的時(shí)候,iOS系統(tǒng)會(huì)檢查App bundle中的Info.plist文件。如果發(fā)現(xiàn)有associated domain字段,會(huì)讀取applinks的地址,比如wx.shunliandongli.com,然后系統(tǒng)會(huì)去該域名根目錄下尋找一個(gè)名為apple-app-site-association的文件。如果有,那么下載到本地,然后解析這個(gè)文件。根據(jù)path建立與appid的映射關(guān)系,保存在系統(tǒng)的數(shù)據(jù)庫中。如果有訪問http://wx.shunliandongli.com/path/ 的鏈接,系統(tǒng)會(huì)根據(jù)映射關(guān)系找到的appid,啟動(dòng)該app,實(shí)現(xiàn)universal link。

1、客戶端配置(根據(jù)下圖配置)

image.png

image.png

image.png

創(chuàng)建Domains 中 applinks: 是固定前綴。后面跟著的是你們的要使用的域名,這樣客戶端就配置好了(xcode 幫你把a(bǔ)ppID中的 Associated Domains開關(guān)打開了,不需要你處理)

2、服務(wù)端配置

在你剛剛添加Associated Domains的域名 服務(wù)器根目錄中添加一個(gè)名為 apple-app-site-association文件,不需要后綴

文件中的內(nèi)容

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "A5VC12345Y.com.ShunLian.Power",
                "paths": ["/app","*"]
            },
        ]
    }
}

這個(gè)A5VC12345Y是teamID 后面的com.ShunLian.Power是boundID
paths 是對(duì)應(yīng)的路徑,就是你域名路徑下,跳轉(zhuǎn)的路徑。比如:
/app 對(duì)應(yīng)的路徑就是 wx.shunliandongli.com/app
*對(duì)應(yīng)的路徑就是 wx.shunliandongli.com/* 就是所有路徑

3、使用

在Safari瀏覽器中輸入 wx.shunliandongli.com/app就能打開APP,如果沒有安裝APP的時(shí)候,就打開對(duì)應(yīng)的網(wǎng)頁。

4、調(diào)試 - 在Appdelegate中添加回調(diào)方法

在下面方法中添加網(wǎng)頁路徑對(duì)應(yīng)的APP頁面

-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{
               NSLog(@"path : %@",userActivity.webpageURL.absoluteString);
}

tips: 我們?cè)谔幚砭W(wǎng)頁跳轉(zhuǎn)到對(duì)應(yīng)的APP回調(diào)的時(shí)候,我們公司的處理方法可以參考,假設(shè)有一個(gè)頁面,即在網(wǎng)頁中打開,又在APP中打開。我們就給這些頁面一個(gè)特定的路勁 比如wx.shunliandongli.com/app/*,就是app路徑下的所有網(wǎng)頁,都需要打開APP。然后我們把對(duì)應(yīng)要跳轉(zhuǎn)到APP頁面的信息,拼接在鏈接的參數(shù)后面。比如:wx.shunliandongli.com/app/activity?ios_schema=xxxxxx
這個(gè)鏈接地址,明顯在app/*路徑下,所以能跳轉(zhuǎn)。ios_schema=xxxxxx 是我們要在APP跳轉(zhuǎn)到指定頁面的 識(shí)別標(biāo)識(shí)。

二、schema

1、 添加Schema URL -我隨便寫了一個(gè) "myAppSL"

image.png

image.png

這樣Schema URL就添加成功了

2、使用

1、在Safari中輸入 myAppSL:// 就能跳轉(zhuǎn)到app
2、在其他APP跳轉(zhuǎn)到咱們自己的APP的時(shí)候,調(diào)用西下面方法

    NSURL* url = [NSURL URLWithString: @"myAppSL://"];
    [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];

3、在Appdelegate回調(diào)處理

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation  {  
    NSLog(@"%@",url.absoluteString);
    return YES;  
}  
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容