1. 程式人生 > >universal link使用

universal link使用

server art devel type ace host 直接 ida cat

iOS9之後,蘋果推出了universal link方案,該方案較url scheme有明顯的改善。url scheme很難做到唯一。

而 universal link卻是你自己控制的。

1、有一個HTTPS 的web server服務器,這個域名就是用來做universal link的。

2、建立一個json文件,命名為apple-app-site-association 註意不要有後綴。文件裏的內容為一段json:

{
"applinks": {
"apps": [],
"details": [
{
"appID": "TEAMID.BUNDLEID",
"paths": [ "*"]
}
]
}
}

//TEAMID替換為你的付費Apple ID的team id. BUNDLEID替換為你的應用的包名

paths為路徑,* 萬能匹配符,具體的路徑可以在數組中添加。

將apple-app-site-association這個文件上傳到HTTPS web服務器根目錄或者.well-known的子目錄。

3、配置Xcode.打開Capabilities裏的Associated Domains,在裏面添加你的web server域名。

格式為:applinks:baidu.com //baidu.com替換為你的web server域名

確保在開發者後臺Apple Developer網站你的App Id包含Associated Domains功能。

4、在AppDelegate的代理方法中處理用戶的點擊事件

-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{

// NSUserActivityTypeBrowsingWeb 由Universal Links喚醒的APP

if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {

NSURL *webpageURL = userActivity.webpageURL;

NSString *host = webpageURL.host;

if ([host isEqualToString:@"api.r2games.com.cn"]) {

//進行我們需要的處理

NSLog(@"TODO....");

} else {

NSLog(@"openurl");

[[UIApplication sharedApplication]openURL:webpageURL options:nil completionHandler:nil];

// [[UIApplication sharedApplication]openURL:webpageURL];

}

}else{

NSLog(@"UNKNOWN");

}

return YES;

}

測試:蘋果提供了一個鏈接來測試你的apple-app-site-association文件是否有效。測試會告訴你哪些地方需要改進,測試沒有通過也沒有關系,可以直接在瀏覽器輸入你配置的web server域名來測試。

https://search.developer.apple.com/appsearch-validation-tool/

測試需要使用一個上線的app.必須用真機測試,模擬器不支持universal link.

universal link的一個好處了,這個網頁你可以在裏面做很多處理,包括用戶的點擊響應。如果手機上裝了該app,則網頁會提示在app中打開。如果沒有安裝app的話也可以引導玩家去蘋果商店下載。

參考鏈接:https://www.raywenderlich.com/128948/universal-links-make-connection

參考鏈接:http://blog.csdn.net/kuangdacaikuang/article/details/52958052

universal link使用