10

iOS の新しい Universal Links 機能を使用していますが、この機能のためにホームページの特定のパスを無効にしたいと考えています。

例: 「_id_」と開始ページを含み、ドメインhttp://example.comのhttp://example.com/testsiteを含まないすべての URLは、アプリ内で開く必要があります。どうすればこれを解決できますか?

サーバー上の私の apple-app-site-association ファイルは次のようになります。

{
"activitycontinuation": {
    "apps": [
        "ABCDEFGHIJ.com.example.ios"
    ]
},
"applinks": {
    "apps": [],
    "details": [
        {
            "appID": "ABCDEFGHIJ.com.example.ios",
            "paths": [
                "/",
                "*_id_*"
            ]
        }
    ]
}
}

アプリ内の資格ファイル:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"     "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.developer.associated-domains</key>
    <array>
        <string>activitycontinuation:example.com</string>
        <string>activitycontinuation:www.example.com</string>
        <string>activitycontinuation:m.example.com</string>
        <string>applinks:example.com</string>
        <string>applinks:www.example.com</string>
        <string>applinks:m.example.com</string>
    </array>
</dict>
</plist>

特定のパスを除外するオプションが見つかりませんでした。これはどのように実現可能ですか?

4

2 に答える 2

10

パスの先頭にNOTを追加すると、そのパスは一致から除外されます。例 -

{
"applinks": {
    "apps": [ ],
    "details": [
        {
            "appID": "{app_prefix}.{app_identifier}",
            "paths": [ "NOT /path/to/exclude"]
        }
    ]
}
}

パスを定義するには、次の 3 つの方法があります。

Static: サポートされているパス全体は、特定のリンクを識別するためにハードコードされてい
Wildcardsます。? books/1 などの特定のパス コンポーネント内で? ID が 1 で始まるすべての本と一致させるために使用できます。
Exclusions: パスの先頭に NOT を付けると、そのパスは一致から除外されます。

配列内でパスが記述される順序は重要です。初期のインデックスほど優先度が高くなります。パスが一致すると、評価が停止し、他のパスは無視されます。各パスは大文字と小文字が区別されます。


参照

iOS アプリで Universal Links をサポートし、サーバーをセットアップするにはどうすればよいですか?

于 2016-03-07T19:00:38.833 に答える
2

これは機能しますか?

"paths": [
    "NOT http://example.com/testsite/*",
    "/",
    "*_id_*"
]

Apple Guideを読んで、その特定のパスを除外するのに役立つはずです。

ユニバーサルリンクとして扱わない領域を指定するには、パス文字列の先頭に「NOT」(Tの後のスペースを含む)を追加します。

于 2015-12-16T18:03:20.453 に答える