Событие «deviceready» приложения PhoneGap iOS — начальный ввод против возобновления

#ios #cordova

#iOS #кордова

Вопрос:

Я использую PhoneGap для создания собственного приложения для iOS. Приложение реализует схему iOS, так что его можно вызвать из мобильного Safari, например myapp: //?параметры. Действия приложения зависят от входных параметров, я считываю их, обрабатывая событие «deviceready».

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

Есть идеи? Спасибо!

Ответ №1:

Удалось ли вам в конце запустить событие возобновления?

У меня также возникли проблемы с этим — у меня есть следующий код:

 window.addEventListener('load', function () {
    document.addEventListener('deviceready', onDeviceReady, false);
}, false);

function onDeviceReady() {
    document.addEventListener('resume', onResume, false);
    document.addEventListener('pause', onPause, false);
    document.addEventListener('online', onOnline, false);
    document.addEventListener('offline', onOffline, false);
}

function onResume() {
    alert('resume');
}

function onPause() {
    alert('pause');
}

function onOnline() {
    alert('online');
}

function onOffline() {
    alert('offline');
}
  

И хотя события deviceready и online, похоже, запускаются, я, похоже, не могу запустить событие resume. Любой свет, который кто-либо мог бы пролить на это, был бы высоко оценен!

Ответ №2:

Происходит событие «возобновить». http://docs.phonegap.com/phonegap_events_events.md.html

Комментарии:

1. Хорошо, я могу обработать событие «resume», но приведет ли оно к новой строке вызова с новыми параметрами? С первой попытки кажется, что это не так.

Ответ №3:

Прошло больше года с тех пор, как был задан вопрос, но я все равно хочу ответить для будущих читателей.

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

 function handleOpenURL(invokeString) {
  // do something with the invoke string
}