Phonegap/Cordova 2.9 Встроенный браузер iOS не открывается, если включены плагины Google Admob
Я разрабатываю iOS-приложение phonegap / cordova 2.9 для jQuerymobile, некоторые ссылки на который нужны для открытия URL-адреса с помощью InAppBrowser. Также я интегрировал Google Admob. Навигация - это простой одностраничный шаблон с несколькими разными HTML-страницами.
Когда приложение загружено, если я не перехожу в другие разделы приложения, при нажатии кнопок с URL-адресами браузера в приложении открывается браузер в приложении. Но если я перехожу в другие разделы приложения и снова захожу в index.html, браузер In-App не работает и не работает.
Различные разделы приложения связаны с 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 и использовать его вместо браузера в приложении, но я не могу заставить его работать.
Кто-нибудь может мне помочь?. Большое спасибо.
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 был снова загружен.