web-dev-qa-db-ja.com

Cordova / phonegapアプリケーションでディープリンクを提供および処理する方法

こんにちは、Cordova/Phonegapプラグイン、またはSencha Touch/Cordovaアプリでディープリンクを公開して処理する方法について知りたいです

これまでのところ、他のアプリケーションにディープリンクすることができます。たとえば、GooglePlayを開いて特定のアプリの詳細ページに移動します。

このプラグインの使用 https://github.com/code4jhon/org.Apache.cordova.startapp

したがって、私がやりたいのは、他のアプリケーションが自分のアプリケーションで特定のビューまたは機能を開くことができるようにすることです。 AndroidとIOSをサポートしたいと思います。

つまり、Androidとそれに対応するIOS?

またはこれを達成する方法は?

Cordovaのドキュメントを調べましたが、何も見つかりませんでした...ヘルプがあれば、ドキュメントのリンクをいただければ幸いです。

11

試すことができます https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin

それは私にとって完璧に機能しました。

インストール後にクリーニング/ビルドすることを忘れないでください

HandleOpenURLを実装する変数を処理できます

function handleOpenURL(url) {
  console.log("received url: " + url);
}
13
mentat

AndroidとiOSの両方のユニバーサルリンクを処理する新しいプラグインがあります: https://github.com/nordnet/cordova-universal-links-plugin

5
MPaulo

BranchMetricsを使用してこれを達成することができました。彼らは新しいスタートアップで、とても素晴らしいです。

ここでディープリンクについては、cordovaプラグインのドキュメントを確認してください。

https://github.com/BranchMetrics/Branch-PhoneGap-Cordova-SDK#initialize-sdk-and-register-deep-link-routing-function

何をすべきかを理解するために、すべてのドキュメントを読むことをお勧めします。ただし、IonicframeworkとAngularJSを使用して、アプリケーションで使用できるサービスを構築しました。

https://Gist.github.com/sean-hill/627fa40f96577baae378

Branchのプラグインを使用してプロジェクトをビルドした後、iOSおよびAndroid構成の場合は次の手順に従います。

iOS

これを.plistファイルに追加します。

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>yourappname</string>
        </array>
    </dict>
</array>

次にcordova build ios; cordova emulate ios。動作しているかどうかを確認するには、エミュレーターを開き、Safariに移動してyourappname://と入力し、アプリにリダイレクトされるかどうかを確認します。

Android

Androidをビルドした後、これをAndroidManifest.xmlファイルに追加します。

<intent-filter>
    <data Android:scheme="yourappname" Android:Host="open" />
    <action Android:name="Android.intent.action.VIEW" />
    <category Android:name="Android.intent.category.DEFAULT" />
    <category Android:name="Android.intent.category.BROWSABLE" />
</intent-filter>

これをconfig.xmlファイルに追加します。

<preference name="AndroidLaunchMode" value="singleTask" />

次に、再度ビルドすると、ディープリンクの大きな成功への道を歩むはずです。

@Deminetixのリクエストに従って、これがブランチセッションを閉じる方法です。

document.addEventListener("pause", function(){
    var branch = window.Branch;
    branch.closeSession();  
}, false);

コーディングを楽しんでください:)

4
sean-hill

これにcordovaプラグインを使用できるとは思いません。コルドバとプラグイン全体は、アプリケーション内のWebページとネイティブコード間の通信を確立および実行することを目的としています。

あなたの場合、他のアプリがアプリ内にディープリンクを持つことを許可しようとしています。これは、Android&iOSのcustom-app-urlのintent-filterによってのみ実行できます。

appurl.org には、カスタムURLの処理に関する非常に優れたステップバイステップのチュートリアルがあります。次のリンクをご覧ください

1