0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

株式会社シンプルウェイAdvent Calendar 2024

Day 17

ユニバーサルリンク対応(サーバサイド)

Last updated at Posted at 2024-12-16

DynamicLinksが終了するため、自前でユニバーサルリンクに対応させたので、その時のメモです。
サーバサイドは最低限以下をやる必要があります。

  1. ディレクターやアプリ担当者とアプリで起動させるURLを決める
    • スマートフォン内でどのURLがタップされた時に、アプリを起動するかを決めます
  2. 「apple-app-site-association」ファイルを作成してサーバに配置する
    • 設置場所 https://example.com/.well-known/apple-app-site-association
    • 必ず /.well-known/ の配下に「apple-app-site-association」のファイル名で配置します
    • AppleのCDNがアクセスできるよう、IP制限や認証での制限に注意しましょう(特にステージング環境)

apple-app-site-associationの内容

{
  "applinks": {
    "details": [
      {
        "appIDs": [
          "***********"
        ],
        "components": [
          {
            "/": "/item/detail/*"
          },
          {
            "/": "/news/*",
            "exclude": true,
            "commentt": "newsのアプリでの起動を廃止"
          }
        ]
      }
    ]
  }
}

「appIDs」は <チームID>.<バンドルID> です。
カンマ区切りで複数設定する事もできます。

上記の場合は
https://example.com/item/detail/99
のような商品詳細ページのURLをスマホでタップすると、アプリがインストールされている場合アプリで起動します。
アプリ側でURLとパラメータの「99」を取得して表示すべき画面を判断します。

componentsには複数指定できるので、細かく制御する事ができます。
以下のような設定が出来ます。

設定項目 説明
"#":"" フラグメントの指定
"/":"" パスの指定
"?":{"":""} クエリパラメータの指定
"exclude":true trueで設定すると該当の条件は発動しない
"comment":"" コメント

やる事は意外とシンプルです。
細かく追及していくと、色々と工夫しないといけないところは出てきますが、基本はコレだけです。

参考:https://developer.apple.com/videos/play/wwdc2019/717

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?