Nan*_*ano 10 javascript url-scheme cordova
我无法找到解决问题的方法.
我找到了许多自定义URL-Sheme的答案,如此(mycoolapp://somepath
).
例如,这个插件添加了一个自定义URL-Sheme.
但我不想要一个自定义URL-Sheme,我想要一个像这样的"普通"Url(http://www.mycoolapp.com/somepath
).
如果你在浏览器中打开它或者单击超链接,那么它会要求你打开我的应用程序(就像谷歌地图那样).
这个问题可能已经有了答案,但我找不到.
编辑:
如果您不知道我的意思,那么如果您点击Android设备上我的网站链接,那该怎么回事?
只需用我的应用程序选择.
rho*_*ath 15
对于同样的问题,我使用了现有的webintent插件,修改了android清单文件 - 将这些行添加到活动中
<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>
Run Code Online (Sandbox Code Playgroud)
并修改了index.html ondeviceready:
function deviceReady() {
window.plugins.webintent.getUri(function(url) {
console.log("INTENT URL: " + url);
//...
});
}
Run Code Online (Sandbox Code Playgroud)
编辑
我刚刚注意到一种可能不需要的行为.当您使用来自其他应用程序的链接(意图)打开应用程序时,它(在许多情况下)将创建一个新实例而不使用已经运行的实例(使用gmail和Skype进行测试).为了防止这种情况,解决方案是在config.xml文件中更改Android启动模式:
<preference name="AndroidLaunchMode" value="singleTask" />
Run Code Online (Sandbox Code Playgroud)
(它适用于cordova 3.5,不确定旧版本)
然后你需要再添加一个函数来ondeviceready:
window.plugins.webintent.onNewIntent(function(url) {
console.log("INTENT onNewIntent: " + url);
});
Run Code Online (Sandbox Code Playgroud)
当应用程序已经运行并且意图带到前面时会触发此操作.
小智 5
您正在寻找的内容在 iOS 上称为“通用链接”,在 Android 上称为“深层链接”。
有一个 Cordova 插件可以处理这个问题:https://www.npmjs.com/package/cordova-universal-links-plugin
归档时间: |
|
查看次数: |
13631 次 |
最近记录: |