質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

20434閲覧

iOSアプリのUniversal Linksがうまく動かない

nyago49

総合スコア17

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2018/08/03 07:36

React Nativeで開発中のiOSアプリのUniversal Linksがうまく動作していません。
Universal LinksはURLにアクセスしたとき、すでにアプリがインストールされていれば、アプリを起動するものだと考えています。
しかし、実際はアプリがインストールされている場合も、アプリは起動せず、画面上部にアプリのバナーが表示されるのみです。

私が行ったことは以下になります。

Rails側

routes.rbに以下のように記述しています。

rb

1 get '/.well-known/apple-app-site-association', to: 'apple_app_site_associations#index' 2 get '/apple-app-site-association', to: 'apple_app_site_associations#index'

上記のURLにアクセスされた場合に、コントローラではjsonを返すようにしています。
あるURLのアクセス時のみアプリに遷移したいので、pathsは*ではなくパスを指定しています。

rb

1class AppleAppSiteAssociationsController < ApplicationController 2 def index 3 render json: { 4 "applinks": { 5 "apps": [], 6 "details": [ 7 { 8 "appID": 'myAppID', 9 "paths": ['/hoge'] 10 } 11 ] 12 } 13 } 14 end 15end

iOS側

associated-domainにはproductionとstagingのURL(applinks:~の形式)を指定しています。

アプリの起動時に、apple-app-site-associationへのアクセスがあることは確認できています。
間違い・抜け漏れがありましたらご指摘いただければと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まず、「ブラウザに直接貼り付けされた場合Universal Linksは機能しない」です。リンクをタップしたときのみ、アプリを開く動きになります。
iOS 10.3におけるUniversal Linksの7つの課題とOneLinkソリューション

「画面上部にアプリのバナーが表示される」は以下のリンクの「Webページを開いた際に、画面上部に「アプリで開く」ボタンが出ていますか?」と同じ状態でしょうか。それであればUniversal Linksの正しい挙動のひとつになります。
UniversalLinksでのお問い合わせ,運用事例

Universal Linksは解除ができるものとなりますので解除された状態(Webで開くことが選択されている状態)だとWebで開きます。(ユーザに選択肢を与えるためのAppleの仕様だと思われます。)以下、解除できる一例。(試していませんが、もしかしたらブラウザにURL直叩きでもWeb側に紐づいた状態になるかもしれません?)
iPhoneでリンク先を勝手にアプリで開いたりSafariで開いたりするのを制御する最も簡単な方法。ユニバーサルリンクのお話。

一度、アプリ上部のバナーを開くとLinkされた状態になると思いますので以降は直接アプリに飛ぶような動きになると思います。(ディープリンクされた状態)
解除された状態からディープリンクされた状態にするには上記のバナーからアプリを開く手順、またはリンクをロングタップして該当アプリから開くなどの手順を踏む必要があります。

なので、バナーが出た状態であれば正しくUniversal Linksが設定されている状態ではあり、Webで開く状態になっている。と言うのが今の状況です。

投稿2018/08/03 08:38

razuma

総合スコア1313

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

razuma

2018/08/03 08:47

ちなみにアプリを一度アンインストールして入れ直してもその状態は引継がれた気がします(どっかに保存されてるような感じ。まっさらな状態だと初期はアプリが開くようになっているはずだとは思いますが。。。OSや端末によって違うかもしれません。)
nyago49

2018/08/06 05:25

大変わかりやすい説明ありがとうございました。 同一ドメインであったためアプリが起動しないようでした。 現在S3にapple-app-site-associationとHTMLファイルを配置して、リンクを同一ドメインにならないようにしています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問