当我第一次通过自定义URL方案恢复app时,window.handleOpenURL不会执行

时间:2017-06-13 12:15:04

标签: angularjs cordova ionic-framework custom-scheme-url

当我通过自定义方案网址启动应用时,事件' deviceready'在getBillFromLink()执行中触发和window.handleOpenURL;

然后我打开一个网页并从中恢复应用程序,但是window.handleOpenURL没有执行;函数onResume和getBillFromLink将执行;

但无论我第一次在网页上恢复该应用多少次, window.handleOpenURL将正常执行;

以下是代码:

$ionicPlatform.on("deviceready", function () {
    document.addEventListener("resume", onResume, false);
    getBillFromLink().then(function (data) {
        //todo
    });
});
function onResume() {
    getBillFromLink().then(function (data) {
        //todo
    });
}
function getBillFromLink() {
    var deferred = $q.defer();
    $timeout(function() {
        window.handleOpenURL = function(url){
            if(!!url){
                 deferred.resolve(url);
            }else{
                 deferred.reject(url);
            }
        };
    }, 0);
    return deferred.promise;
}

我该怎么处理这个麻烦?

感谢您的建议并抱歉我的英语不好: - )

1 个答案:

答案 0 :(得分:0)

您的问题未与custom-scheme-url插件相关联,因为您在调用特定网址时正确启动了应用。

我认为,一旦应用程序已经启动; custom-scheme-url不再触发你的功能。

您必须使用backgroundmode插件。 我建议使用:https://github.com/katzer/cordova-plugin-background-mode

此插件可让您定义应用从后台移动到活动应用时的事件。等等。