У меня есть мобильное приложение jquery, которое я обертываю в Phonegap для магазина Iphone/Android. У меня есть одна страница, которая использует iframe, который без Phonegap работает так, как вы ожидали. Однако, как только он завернут, Iframe фактически заставляет приложение открывать новое окно/браузер и покинуть приложение. Кто-нибудь знает, есть ли решение для этого? Чин!Iframe открывается в новом окне, однажды завернутый в Phonegap
ответ
http://denrobapps.com/2010/12/phonegap-and-iframes/
Во-первых, откройте PhoneGapDelegate.m и найти этот блок кода:
- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = [request URL];
/*
* Get Command and Options From URL
* We are looking for URLS that match gap://<Class>.<command>/[<arguments>][?<dictionary>]
* We have to strip off the leading slash for the options.
*/
if ([[url scheme] isEqualToString:@"gap"]) {
InvokedUrlCommand* iuc = [[InvokedUrlCommand newFromUrl:url] autorelease];
// Tell the JS code that we've gotten this command, and we're ready for another
[theWebView stringByEvaluatingJavaScriptFromString:@"PhoneGap.queue.ready = true;"];
// Check to see if we are provided a class:method style command.
[self execute:iuc];
return NO;
}
/*
* If a URL is being loaded that's a local file URL, just load it internally
*/
else if ([url isFileURL])
{
//NSLog(@"File URL %@", [url description]);
return YES;
}
/*
* We don't have a PhoneGap or local file request, load it in the main Safari browser.
*/
else
{
//NSLog(@"Unknown URL %@", [url description]);
//[[UIApplication sharedApplication] openURL:url];
return NO;
}
return YES;
}
Вставьте это еще-если прямо под первым, если заявление этого блока:
else if ([[url scheme] isEqualToString:@"http"])
{
return YES;
}
Также убедитесь, что [[UIApplication sharedApplication] openURL: url] раскомментирован в последнем объявлении else (иначе ссылки в iFrame не будут работать):
else
{
//NSLog(@"Unknown URL %@", [url description]);
[[UIApplication sharedApplication] openURL:url];
return NO;
}
спасибо, что это сработало для меня! – 29er
Это потому, что телефонная задержка отключает внешний контент по умолчанию и относится к встроенному браузеру.
Вы можете это исправить в файле /res/xml/cordova.xml
правой кнопкой мыши -> открыть с текстовым редактором , а затем искать там строки:
<access origin="http://127.0.0.1*"/> <!-- allow local pages -->
<!-- <access origin="https://example.com" /> allow any secure requests to example.com -->
<!-- <access origin="https://example.com" subdomains="true" /> such as above, but including subdomains, such as www -->
<!-- <access origin=".*"/> Allow all domains, suggested development use only -->
Я думаю документацию там говорит сам за себя. Я не знаю, как разрешить несколько истоков доступа (я размещаю весь код на одном сервере) и также указываю свой исходный файл. Поэтому я больше не использую/assets/www.
- 1. CRM-вид в iframe теперь открывается в новом окне, почему?
- 2. Форма открывается в новом iframe
- 3. Как открывается этот сайт в новом окне
- 4. Событие Onsubmit открывается в новом окне
- 5. Управление HtmlAnchor не открывается в новом окне
- 6. JS prompt открывается в новом окне сафари?
- 7. json response не открывается в новом окне
- 8. Блокировка Google Analytics открывается в новом окне
- 9. tkinter Button не открывается в новом окне
- 10. Jquery click не открывается в новом окне
- 11. HTML «mailto:» не открывается в новом окне
- 12. Хром не открывается в новом окне правильно
- 13. IFrame открывается во всем окне
- 14. Форма Отправить Вход> Страница открывается в новом окне
- 15. postMessage from iframe открыт в новом окне
- 16. Как сделать iframe Открыть в новом окне
- 17. Открыть ссылку в iframe, размещенную в новом окне
- 18. iframe url открывается в текущем окне вместо iframe
- 19. Обзор обозревателя пакетов в eclipse всегда открывается в новом окне
- 20. Представление формы IFrame открывается в кадре, необходимо открыть в новом окне
- 21. Bookmarklet В новом окне
- 22. url не открывается в iframe
- 23. Открыть страницу в новом окне/tab from iframe
- 24. Просмотр в новом окне
- 25. Razor view to DisplayFor DataType.Url, который открывается в новом окне
- 26. Почему PartialView открывается в новом окне с помощью post action?
- 27. Нажмите на ссылку, не открывается в новом окне
- 28. Сделайте приложение Chrome, которое открывается в новом окне
- 29. JTable открывается в новом окне, даже когда внутри JPanel?
- 30. Pygame collide с объектом открывается в новом окне
Я знаю, что это проблема на Android. Кроме того, я не уверен, что мы сможем исправить это, пока не сделаем некоторые внутренние изменения в способе обработки истории. –
Это ошибка в android. http://code.google.com/p/android/issues/detail?id=17535 Ищете обходное решение самостоятельно ... – user1496391