ユニバーサル リンクをサポートすると、iOS 9 ユーザーは Web サイトへのリンクをタップして、Safari を介さずにインストール済みのアプリにシームレスにリダイレクトできます。アプリがインストールされていない場合、Web サイトへのリンクをタップすると、Web サイトが Safari で開きます。
ここでは、独自のサーバーをセットアップし、アプリで対応するリンクを処理する方法について説明します。
Apple 開発者ページに移動
developer.apple.com でアプリを登録します。アプリ識別子で「関連付けられたドメイン」を有効にします。
Xcode プロジェクトで
「関連付けられたドメイン」を有効にする 前の手順のように、developer.apple.com の APP ID で関連付けられたドメインを有効にすると、「関連付けられたドメイン機能をアプリ ID に追加します」というエラーは表示されなくなります。問題が解決しない場合は、xcode を数回終了して再起動すると、問題なく動作します。
適切なドメイン資格を追加し、ビルド時に資格ファイルが含まれていることを確認します。Xcode はそれを自動的に行います。
次に、ターミナルを使用してapple-app-site-associationファイルを作成します
このコマンドを使用して、AASA (apple-app-site-association) ファイルを作成します。
CDデスクトップ
touch apple-app-site-association
次に、AASP FILE を開き、この json 形式のデータを書き込みます
{
"applinks": {
"apps": [ ],
"details": [
{
"appID": "TeamID.BundleID2",
"paths": [ "*" ]
}
]
}
}
AASA ファイルの準備ができたら、https://<>/.well-known/apple-app-site-association
をホストできます。apple
-app-site-association ファイルを HTTPS Web サーバーにアップロードします。このファイルは、サーバーのルートまたは .well-known サブディレクトリに配置できます。
APPLE APP SITE ASSOCIATION (AASA) VALIDATOR 次のリンクに移動し、ドメイン名を入力します。AASA ファイルが有効でアクセス可能かどうかを確認します。リンク: https://branch.io/resources/aasa-validator/#resultsbox
完了したら、Appdelgate に以下のコードを追加します
Swift4
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
print("Continue User Activity called: ")
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
let url = userActivity.webpageURL!
print(url.absoluteString)
//handle url and open whatever page you want to open.
}
return true
}
Objective-c
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{
if ([userActivity.activityType isEqualToString: NSUserActivityTypeBrowsingWeb]) {
NSURL *url = userActivity.webpageURL;
}
return YES;
}
次に、権限をアプリ ターゲットに追加して実行すると、アプリにリダイレクトされます。AASA ファイルが下の画面のように検証され、アプリケーションにリダイレクトされることを確認してください。
サーバー内でコンテンツ タイプの検証エラーが発生した場合は、1 つの .htaccess ファイルを作成し、その中にこのコードを記述できます。
<Files "apple-app-site-association">
ForceType 'application/json'
</Files>
この手順は私の側では機能しました。あなたの側も適切に機能することを願っています。この投稿を楽しんで読んだ場合。