首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cordova如何从http或https url打开应用程序?

cordova如何从http或https url打开应用程序?
EN

Stack Overflow用户
提问于 2015-01-20 09:24:20
回答 5查看 24.4K关注 0票数 16

我为这样的自定义URL-Scheme (mycoolapp://somepath)找到了许多答案。

例如,这个插件添加了一个定制的URL-Sheme.*

但我不想要一个自定义的网址-方案,我想要一个“正常”的网址像这样(http://www.mycoolapp.com/somepath)。

例如,如果你在浏览器中打开它或者点击一个超链接,那么它应该要求你打开我的应用程序(就像谷歌地图那样)。

这个问题也许已经有答案了,但我找不到。

如果你不知道我的意思,如果你点击我在Android设备上的网站链接,它应该是这样的:

用我的应用程序来选择。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-01-28 00:30:47

对于相同的问题,我使用了现有的网络意图插件,修改了android清单文件-将这些行添加到活动中

代码语言:javascript
复制
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:host="example.com" android:scheme="http" />
</intent-filter>

并修改了index.html ondeviceready:

代码语言:javascript
复制
function deviceReady() {
    window.plugins.webintent.getUri(function(url) {
        console.log("INTENT URL: " + url);
        //...
    }); 
}

编辑

我刚注意到一种可能是不受欢迎的行为。当您使用来自另一个应用程序的链接(意图)打开应用程序时,它将(在许多情况下)创建一个新实例,而不使用已经运行的实例(使用gmail和skype进行测试)。为了防止这种情况,解决方案是更改config.xml文件中的Android启动模式:

代码语言:javascript
复制
<preference name="AndroidLaunchMode" value="singleTask" />

(它适用于cordova 3.5,不确定旧版本)

然后,您需要向ondeviceready再添加一个函数:

代码语言:javascript
复制
window.plugins.webintent.onNewIntent(function(url) {
    console.log("INTENT onNewIntent: " + url);
});

这一个是触发时,应用程序已经运行,并被带到前面的意图。

票数 19
EN

Stack Overflow用户

发布于 2016-05-10 20:01:43

你要找的是iOS上的“通用链接”和安卓上的“深度链接”。

还有一个Cordova插件可以处理这个问题:https://www.npmjs.com/package/cordova-universal-links-plugin

票数 5
EN

Stack Overflow用户

发布于 2015-01-20 20:15:18

您需要做的是检测连接到http://www.mycoolapp.com/somepath的设备。

如果这是一个移动设备,那么你可以给他们一个页面,与你的自定义网址方案,打开你的应用程序链接。或者自动打开应用程序的自定义url,如果你愿意的话。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28041677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档