序文
ユニバーサルリンクの目的はURLスキームと似ており、主にアプリを外部から起動して特定の操作(指定したページを開くなど)を実行するために使用されます。
URL スキーム (wechat://path?quary) を使用して現在のアプリから独自のアプリケーションをウェイクアップする場合、アプリケーションの URL スキームを現在のアプリのホワイトリストに追加する必要があるため、この方法の柔軟性が制限されます。ユニバーサル リンクを使用すると、この問題 (https://ドメイン名/パス) を解決できます。
応用
リンクがユニバーサル リンクとして呼び出される前に、リンクは https プロトコルであり、webView で開かれるときにクロスドメイン (現在のドメイン名とは異なる) である必要があります。
apple-app-site-association という名前のファイルをルート ディレクトリまたは .well-know ディレクトリに保存します。( https://ドメイン名/.well-know/apple-app-site-association またはhttps://ドメイン名/apple-app-site-association )
apple-app-site-association ファイルのコンテンツ形式は次のとおりです。
{
"applinks":{
"apps":[],
"detail":[
{
"appID": "TeamID.com.app.once",
"paths": [ "/once/deeplink/*", "/once/download/*"]
}, {
"appID": "TeamID.com.app.second",
"paths": [ "/second/deeplink/*", "/second/download/*"]
}
]
}
}
1. Apple Developer Center で対応する識別子を選択し、ASSociated Domains サービスを有効にします。
2. Xcode で、Target-Capabilities を開き、Associated Domains を設定します。
3. IOSコールバック処理
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
NSURL *webUrl = userActivity.webpageURL;
if ([webUrl.host isEqualToString:@"域名"]) {
}
}
return YES;
}