【发布时间】:2015-09-11 19:53:51
【问题描述】:
我正在构建一个 meteorjs 应用程序并将其部署为适用于 Android 和 iOS 的本机 (cordova) 应用程序。
我需要深度链接到我的应用,这样我就可以通过点击网站上的链接来启动它。
我已经使用 Eddy Verbruggen (https://github.com/EddyVerbruggen/Custom-URL-scheme) 的 cordova 插件实现了 URL Scheme,并通过点击“myapp://”格式的链接成功启动了我的应用程序。
问题是,即使应用程序成功启动,handleOpenUrl 挂钩也没有被触发。
Meteor.startup(function() {
handleOpenURL = function handleOpenURL(url) {
console.log("received url: " + url);
// parse url and proceed accordingly
}
});
没有任何记录。所以我无法将任何参数传递给我的应用程序,甚至无法检测到应用程序是通过遵循“myapp://”URL 方案的链接启动的。
另外,我注意到即使我的应用程序已经打开,如果我切换到浏览器并点击一个特殊的“myapp://”链接,而不是切换到我的(已经打开的)应用程序,一个新的实例应用程序正在启动。
[edit] 原来这两个问题是相关的。一旦我阻止了应用程序的新实例被初始化,handleOpenUrl 函数就会成功触发。
我使用 Android 模拟器进行所有测试。我还没有机会在 iOS 上进行测试。
[edit] iOS 根本没有给出这个问题。这只是一个 Android 问题。
如果有人对在 meteorjs 中实现自定义 URL 方案有任何经验,非常感谢您的反馈!
【问题讨论】:
-
你是如何让你的自定义 url 在模拟器上的 android 中工作的?我无法让模拟器注册它,但它在 ios 中效果很好
标签: android ios cordova meteor url-scheme