Phonegap/Cordova 2.9 Браузер в приложении iOS не открывается, когда включены плагины Google Admob

Я разрабатываю iOS-приложение phonegap/cordova 2.9 с jQuerymobile, для которого некоторые ссылки должны открывать URL-адрес с помощью InAppBrowser. Также я интегрировал Google Admob. Навигация — это базовый одностраничный шаблон с несколькими различными html-страницами.

Когда приложение загружено, если я не перехожу к другим разделам приложения, при нажатии кнопок с URL-адресами браузера в приложении открывается браузер в приложении. Но если я перейду к другим разделам приложения и снова перейду к index.html, браузер в приложении выйдет из строя и не будет работать.

Различные разделы приложения связаны с target="_blank". Если я связываю разделы без target="_blank", все работает правильно, но мне нужно использовать target="_blank", чтобы вернуться к index.html и перезагрузить данные XML.

Я ищу любое решение несколько дней назад, но ничего не нашел. Только один подобный подробно описан в этом посте, но без решения: http://iphonedevsdk.com/forum/iphone-sdk-development/115057-inappbrowser-is-not-opening.html

Еще я пробовал установить плагин Childbrowser из https://build.phonegap.com/plugins/2<. /a> и использовать его вместо браузера в приложении, но я не могу заставить его работать.

Кто-нибудь может мне помочь?. Спасибо большое.


person user2851282    schedule 10.11.2013    source источник


Ответы (1)


Возможно, вы ушли от этого, но мой сценарий заключался в том, что я использовал Cordova 2.9.1 с jquery mobile. В определенные моменты пользовательского опыта я также возвращаюсь к index.html. Это работало нормально, если я не открывал InAppBrowser в любой момент. InAppBrowser работал, но в следующий раз, когда я вернулся к обновлению index.html, все плагины, включая InAppBrowser, не выполнялись.

Мое исправление состояло в том, чтобы внести изменения в CDVInAppBrowser.m следующим образом:

Вместо:

BOOL isPDF = [@"true" isEqualToString :[theWebView stringByEvaluatingJavaScriptFromString:@"document.body==null"]];
if (isPDF) {
    [CDVUserAgentUtil setUserAgent:_prevUserAgent lockToken:_userAgentLockToken];
}

[self.navigationDelegate webViewDidFinishLoad:theWebView];

Я убрал логику isPDF и просто удостоверился, что она всегда обновляется до предыдущего UserAgent. мне осталось только..

[CDVUserAgentUtil setUserAgent:_prevUserAgent lockToken:_userAgentLockToken];

[self.navigationDelegate webViewDidFinishLoad:theWebView];

Надеюсь, это поможет кому-то, кто, возможно, был в похожей ситуации, когда InAppBrowser ломал jquery-mobile или аналогичные фреймворки, когда cordova.js был перезагружен снова.

person ryanH    schedule 31.01.2014