如何在cordova / phonegap应用程序中提供和处理深层链接

时间:2014-08-01 03:19:47

标签: android cordova android-activity cordova-plugins

您好 我想知道Cordova / Phonegap插件或在Sencha Touch / Cordova App中公开和处理深层链接的方法

到目前为止,我能够深入链接到其他应用程序,让我们说打开Goog​​le Play到特定的应用详情页面。

使用此插件https://github.com/code4jhon/org.apache.cordova.startapp

所以我想做的是让其他应用程序在我的应用程序中打开特定的视图或功能。我想支持Android和IOS。

那么底线是否有一个Cordova插件可以在IOS上公开Android及其对手的活动?

或者如何实现这个目标?

查看了Cordova文档,但没有找到任何帮助,任何帮助,doc链接都会非常感激。

4 个答案:

答案 0 :(得分:11)

您可以尝试https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin

它非常适合我。

记得在安装后清理/构建

您可以处理变量实现handleOpenURL

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

答案 1 :(得分:5)

有一个新的插件可以处理Android和iOS的通用链接:https://github.com/nordnet/cordova-universal-links-plugin

答案 2 :(得分:4)

我能够使用Branch Metrics完成此任务。他们是一个新的创业公司,非常棒。

在这里查看他们的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);

玩得开心编码:)

答案 3 :(得分:2)

我认为我们不能使用cordova插件。整个科尔多瓦&amp;插件是为了建立&amp;在网页和网络之间执行通信应用程序中的本机代码。

在您的情况下,您尝试允许其他应用在您的应用中拥有深层链接。这只能通过android&amp;中的intent-filter完成。 ios中的custom-app-url。

appurl.org有一些关于处理自定义网址的非常好的分步教程。看看以下链接