10

カスタム URL プロトコルの代わりに特定の Web アドレスを使用して、Android で行う方法と同様に iOS アプリケーションを開きたいと考えています。

これがAndroidでの動作です。Reddit is Funアプリは、この好例です。

  • ユーザーは、メール アプリ、ブラウザー アプリ、または同等のものを使用しています。
  • ユーザーが reddit 投稿へのリンクをクリックします。この例では、リンクは「http://reddit.com/r/example」です。
  • Reddit is Funアプリは「http://reddit.com/」リンクを処理するように設定されています
  • Android は、ユーザーに次のオプションを提供するダイアログを表示します。
    • Web ブラウザでリンクを開く
    • Reddit でリンクを開く

Apple iOS URL スキームに関する参考資料を探してみましたが、これまでに見つけたものはすべて、カスタム URL プロトコルが必要であり、http:// を使用できないことを示しています。「reddit://」のようなものを使用する必要があります。

実際の Web アドレスを URL スキームとして指定することの優れた点は、Reddit is Fun アプリを持っていない場合、ブラウザーが自動的にページを開くため、優れたフォールバックになることです。iOS のようなカスタム URL プロトコルを使用する場合、デバイスにアプリがインストールされていない場合、フォールバックはありません。それが失敗したという兆候はありません。それが何かをしようとしたという兆候はありません。

この方法でアプリケーションを開く方法を知っている人はいますか? たとえば、「http://reddit.com/」リンクをクリックすると reddit アプリを開くことはできますか?

編集: 私が非常に興味深いと思うのは、iOS が既にYouTube リンクでこれをある程度サポートしていることです。

編集: iOS で私がやりたいことを正確に行う方法はないようです。ただし、この投稿には、何をすべきかについていくつかの良い提案があります。2009年以降、状況が変わることを願っていました。

4

4 に答える 4

7

これは、「ユニバーサル リンク」と呼ばれるもので iOS で有効になりました: https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html

ソースが html ベースの場合、これをサポートする Cordova プラグインがあります: https://github.com/nordnet/cordova-universal-links-plugin#android-web-integration

于 2015-12-24T20:43:28.693 に答える
2

iOS では、ほとんどのアプリでそれがどのように実現されているかをお話ししましょう。「Reddit も楽しい」ことを願っています。

Http リンクは、アプリに関連付けられたカスタム URL を呼び出して、iOS アプリがインストールされているかどうかを確認する Web ページにリダイレクトします。

エラーが返された場合、Web ページは読み込まれます。それ以外の場合、アプリケーションは特定のビューで起動されます

それがあなたが探していたものであることを願っています。

于 2014-09-19T15:55:17.127 に答える
2

あなたが見つけたものは正しいです。それはカスタムスキームでのみ行うことができます.

于 2014-09-19T15:08:57.903 に答える
1

実際にこれを行うことはできますが、リンクしたい reddit 記事ごとにサーバー上でページをホストする必要があります。毎回手動でページを作成する必要がないように、 Branchでこれの動的バージョンを独自に作成しました。また、iOS と Android の違いも検出します。ただし、ページを手動で作成するための手順は次のとおりです。

http://reddit.com/r/exampleにリンクする電子メールを送信する場合は、ページを作成してサーバーでホストする必要があります (例: http://yourapp.com/hosted-links/r/example)。次のようになります。

<!DOCTYPE html>
<html>
    <body>
        <script type="text/javascript">
            window.onload = function() {
                // Deep link to your app goes here
                document.getElementById("l").src = "reddit://r/example";

                setTimeout(function() {
                    // Link to the App Store should go here -- only fires if deep link fails                
                    window.location = "http://reddit.com/r/example";
                }, 500);
            };
        </script>
        <iframe id="l" width="1" height="1" style="visibility:hidden"></iframe>
    </body>
</html>

サーバーhttp://yourapp.com/hosted-links/r/exampleにリンクすると、ユーザーがアプリを持っているかどうかに関係なく、iOS で適切に開くことができます。

于 2015-02-24T21:12:22.250 に答える