Только первый requestAsync работает для UWP ApplicationTrigger - PullRequest
0 голосов
/ 18 декабря 2018

Первый вызов Application Trigger в приложении работает должным образом. Я достиг первой точки останова в фоновой задаче (точка входа) после следующего кода (результат «позволен»):

applicationTrigger.requestAsync(appParams).done(res => {
            const resultKeys = Object.keys(Background.ApplicationTriggerResult);
            console.debug(resultKeys[res]);
        });

последующие вызовы в ходе выполнения моего приложения также отображаются как «разрешенные», однако код фоновой задачи никогда не вызывается.Я знаю это, поскольку точка останова в файле фоновой задачи никогда не достигается, и запрос XHR в этой фоновой задаче никогда не вызывается (он вызывается только при первом вызове триггера приложения requestAsync).Единственный способ заставить его успешно звонить несколько раз - это отменить регистрацию и перерегистрировать задачу, связанную с триггером приложения, перед выполнением вызова (что я чувствую, что не должен был прибегать к этому).

В коде моей фоновой задачи есть deferral.complete () для случая, когда асинхронная операция также завершена, так что это не проблема.Я также только что попытался подождать две минуты, прежде чем запустить снова, и он все еще не запускает задачу.Документация по фоновым задачам JavaScript UWP немного скудна, поэтому, если кто-нибудь может мне помочь в этом, это будет очень признательно.

1 Ответ

0 голосов
/ 18 декабря 2018

Проблема заключалась в том, что я не звонил близко в веб-приложении фоновой задачи, что я только что предположил, было потенциальной проблемой после прочтения следующего (примечание выделено фиолетовым цветом):

https://docs.microsoft.com/en-us/uwp/api/windows.ui.webui.iwebuibackgroundtaskinstance

Для справки вызов закрыть просто:

close();
...