

### 前提・実現したいこと

iOS アプリを開発しております。  
ユーザ登録機能において、メールアドレス認証で、認証URL からアプリにDeeplink させる方式をとっているのですが、  
Yahoo メール（@yahoo.co.jp） をYahoo
メールクライアントアプリ（https://itunes.apple.com/jp/app/yahoo-%E3%83%A1%E3%83%BC%E3%83%AB/id669931877?mt=8）  
で開く際、クライアントアプリから外部アプリにDeeplink できない問題に直面しています。

### 発生している問題・エラーメッセージ

上記の認証URL から外部アプリにDeeplink させる方法として URL Scheme を使っています。  
またyahoo メールのクライアントアプリは、URL をクライアントアプリ内のWebView で開く仕様となっており、  
WebView 側でURL Scheme をハンドルできていないようです。

### 該当のソースコード

以下のように、認証URL を開くと、Javascript でURL scheme を呼び出すページを用意しています。

[code]

    <script type="text/javascript">
          var fallback_url = "null";
          var url_scheme = "[URL SCHEME]";
          var loc = window.location;
          function redirect(loc) {
            loc.href = url_scheme;
            if(fallback_url.startsWith("http")) {
                setTimeout(function() {
                    loc.href = fallback_url;
                }, 3000)
            }
          }
      </script>
    <body onload="redirect(loc)">
             <p>
    　　　　　　<a href="#" onclick="redirect(loc)">アプリを開く</a>
            </p>
    </body>
    
[/code]

### 試したこと

Yahoo メールアプリ側で、外部アプリのURL scheme 、あるいはUniversal Link でのDeeplink
が制御されている可能性があります。  
全く同じ流れで、他のメールクライアントアプリ（iOS 純正のメールアプリ、Gmail アプリ）では外部アプリにDeeplink できたためです。

※ ただし、"AppStore" アプリは、URL scheme 、Universal Link どちらでもDeeplink できました。  
（Music など他の純正アプリは同様の方法でDeeplink できませんでした。）

少しWeb で調べてみたのですが、同様の問題を取り扱っているページが見当たらなかったため、質問するに至りました。  
ユーザ登録が必須であるアプリ開発において、認証URL からユーザ登録を行うフローは一般的であるかと思いますので、  
同じ問題に直面した経験のある方、あるいは今後この問題に向き合う方のためになればと思います。  
よろしくお願いいたします。


CC BY-SA 4.0
2019-05-22T06:30:34.433
55161
2021-03-24T05:01:35.150
2020-08-20T03:05:50.887
3060
23932
question
swift ios objective-c
Yahoo メールアプリからiOS アプリにDeeplink ができません


Yahoo 公式から見解をいただきました。  
現状ホワイトリストに登録されたもののみ動作する仕様とのことです。

Yahoo メールクライアントを使っているユーザには、認証URL をコピーして、Safari
などのブラウザに貼り付けてもらうよう促すようにする必要がありそうです。

**Yahoo! からの回答内容:**

> お問い合わせの「認証URLをYahoo!メールアプリのWebViewで開く場合アプリにDeeplinkできない」件についてご案内いたします。
>
>
> iOS版Yahoo!メールアプリ内のブラウザーにおいて、他のアプリを起動させるようなURLは、現状ホワイトリストに登録されたもののみが動作する仕様となっております。
>
> お知らせくださいました事象につきましては、現時点でのiOS版Yahoo!メールアプリ側の仕様です。
>
> 恐れ入りますがYahoo!メールアプリ上で、その他の方法で画面を開くことはできません。
>
> 今後、任意のアプリを起動させるURLが全て動作するよう弊社でも対応を検討しておりますが、具体的な対応時期は未定となっております。

* * *

_この投稿は @MameGO さんが質問に追記されていた内容を、コミュニティwiki の個別の回答として投稿しました。_


CC BY-SA 4.0
2020-08-20T03:05:39.517
69710
2020-08-20T03:05:39.517
3060
55161
answer