如何在离子+ cordova +角应用中使用cordova-universal-links-plugin?

时间:2017-04-07 18:59:14

标签: angularjs cordova cordova-plugins

我是一个非常喜欢cordova的菜鸟,这可能有一个简单的解决方案,但我已经搜索了整个互联网并且未能找到它。我甚至没有运气就读过cordova的插件创建指南。

我有这个离子/ cordova应用程序,我安装了这个插件https://github.com/nordnet/cordova-universal-links-plugin 使用此命令:

$ cordova plugin add cordova-universal-links-plugin --save
顺便说一下,我使用的是角1.6,还有使用了Cordova 6.5。

现在我已经按照gitHub页面上的所有说明进行了操作,但是在调用

universalLinks.subscribe(...)

来自

angular.module('myModule', ['libs...'])
    .run(function($ionicPlatform, $state, $cordovaBadge) {
        $ionicPlatform.ready(function() {
            /*HERE*/ universalLinks.subscribe(...) /*HERE*/
...
}

我收到此错误:

Uncaught ReferenceError: universalLinks is not defined
at app.js:44
at Array.<anonymous> (ionic.bundle.js:56230)
at onPlatformReady (ionic.bundle.js:2496)
at onWindowLoad (ionic.bundle.js:2477)

我尝试添加&#39; universalLinks&#39;或者&#39;通用链接&#39;进入模块的依赖关系数组,但后来我得到与之相关的错误(注入器无法找到它)

我查看了该插件的目录,并在那里定义了universalLinks对象的.//iversonLinks.js文件,但我不知道该如何处理,我可以& #39; t将它包含在index.html中,因为它不在我的应用程序的www目录中,我认为cordova应该自动集成它。

我做错了什么?我该如何实际使用这个插件?

在SO上有一个类似但未回答的问题:How to include and use cordova plugins

1 个答案:

答案 0 :(得分:0)

自从你提出这个问题已经有一段时间了,但这是解决方案。您需要将universalLinks.subscribe置于&#34; deviceready&#34;事件监听器回调。将它放在$ionicPlatform.ready或其他内容中并不起作用,但似乎deviceready事件正常工作。 看起来应该是这样的:

app.run(function () {
    document.addEventListener("deviceready", function () {
        universalLinks.subscribe(null, function (eventData) {
            ...
        });
    });
});