1

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

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

但是无论我第一次从网页恢复应用多少次,window.handleOpenURL 都会正常执行;</p>

这里是代码:

$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;
}

我该如何处理这个麻烦?

感谢您的建议,并为我糟糕的英语感到抱歉:-)

4

1 回答 1

0

您的问题未链接到 custom-scheme-url 插件,因为您的应用程序在您调用特定 URL 时正确启动。

我假设,一旦应用程序已经启动;custom-scheme-url 不会再次触发您的功能。

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

此插件可让您定义应用程序从后台进入活动应用程序时的事件。和更多。

于 2017-06-13T12:36:55.517 回答