はじめに
iOS8か9ぐらいで実装された、 Universal Links
。
結構前(2年前ぐらい)に試してみたのですが知識及ばずで結局諦めてしまっていましたが、急にやってみたくなったのでやったのでそれのまとめ
環境
Xcode側の設定
Associated Domainsの有効化
Project
-> Capabilities
-> Associated Domains
をオンにして applinks:<apple-app-site-associationを配置するドメイン>
を設定。
これでApple Developer Centerの方のAppIDの方も有効になる
AppDelegate.swift
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool { if userActivity.activityType == NSUserActivityTypeBrowsingWeb { print(userActivity.webpageURL!) } return true }
Universal Linksからの遷移をハンドリングするメソッドです。
サーバ側の設定
apple-app-site-association の記述
上記サイトのようにJSON形式のファイルを作る。
内容に関しては省略。
今回は https://example.com/.well-known/apple-app-site-association
でアクセスできるように配置した。
Universal LinksのValidator等は、まず .well-known
から探してくるらしい。
App Search API Validation Tool - Apple Developer
Nginxの設定
サンプルとしてあげておく。
server { listen 443; server_name example.com; root /path/to/html; location /.well-known/apple-app-site-association { default_type application/json; } location / { index index.html; ・・・ } ・・・ }
重要な部分は、 apple-app-site-association
を application/json
として認識させてあげること。
$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful $ sudo /etc/init.d/nginx restart
これで準備OK!!
テスト
まずはSafariに直打ちで確認する。
表示される画面をちょっと上にスクロールするとSmartBannerのように表示がされる。ここの 開く
ボタンを押すとアプリを開くこともできる。
メモ帳にURLを貼って遷移させてみる。
こんな感じの動作をしてくれる!やったね!
最後に
今回のブログ記事は超雑記ですが、既にいろんなところに情報は散らばっているので大丈夫でしょう。自分のメモ的な感じで書きました。
本来であれば、先週の分の記事になって日記記事のはずだったんですがいまいち気分が乗らなかったのでパスしました。書くかもしれませんが。