我遇到了一个应用程序的奇怪问题,其中一个主要 View 是 UIWebView
。这个应用程序在导航 Controller 中有一个登录 View Controller (仅 UIKit
),成功登录后主视图 Controller 被推送,其中包含一个 UIWebView
和一些其他控件。 webView
加载并显示 Kindle Cloud Reader ( http://read.amazon.com )。
如果在登录屏幕上(当用户按下主页或在正常的 Facebook 登录流程期间)应用程序处于后台/切换时,就会出现问题。在这种特定情况下,Kindle Reader 永远不会加载(即使 UIWebView 是在登录后创建的)。如果应用程序在 webview 创建后后台运行,则不会出现此问题。
通过 Safari 调试进一步调查问题,似乎问题是由 javascript 错误 “SECURITY_ERR:DOM 异常 18:试图突破用户代理的安全策略。”触发的。
此错误与 openDatabase
命令有关。
这个问题似乎与 https://issues.apache.org/jira/browse/CB-330 有关. iOS 5 及更高版本的所有版本都会受到影响,包括设备和模拟器。
有什么想法吗?
最佳答案
我也遇到过同样的问题。我不知道为什么会这样。 但是我们找到了解决方法。
试试这个
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[UIWebView 新增];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
//应用程序启动后自定义覆盖点。 self.viewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController"bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
返回是;
我在 didFinishLaunchingWithOptions 委托(delegate)方法上添加了 [UIWebView new]; 语句。现在“SECURITY_ERR: DOM Exception 18”不会出现。
关于ios - 当应用程序后台运行然后恢复时,带有 HTML5 数据库的 UIWebView 不会加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15003490/