usa*_*akc 28 uiwebview ios ios7
我正在将我的应用程序移植到iOS 7,我在iOS 7中遇到UIWebView问题.我使用以下代码加载了本地html字符串:
NSURL *baseURL = [NSURL fileURLWithPath: DOCUMENTS_DIRECTORY];
[self.descWebView loadHTMLString:html baseURL:baseURL];
Run Code Online (Sandbox Code Playgroud)
它在iOS 6和之前的版本上完美运行,但在iOS 7上它无法渲染,UIWebView仍然是白色的.此消息显示在控制台中:
void SendDelegateMessage(NSInvocation *): delegate
(webView:decidePolicyForNavigationAction:request:frame:decisionListener:)
failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode
Run Code Online (Sandbox Code Playgroud)
谢谢你的回复.
Tru*_*nse 11
正如@zaplitny所提到的,我不得不将Crittercism更新到最新版本(4.1.0),以免这个问题消失.
小智 9
旧版本的Crittercism库出现问题导致了这个问题.正如其他人在评论中提到的那样,这个错误在Crittercism SDK的4.3.1版本中得到了修复.
https://app.crittercism.com/downloads/release_notes/ios/4.3.1:
修复:遇到UIWebViews的应用程序在iOS 7上运行时无法在首次启动时加载数据的解决方法.这仅发生在子类UIWebView的应用程序中,并且Crittercism已向Apple提交了错误报告.注意 - 请注意,虽然您的应用程序可能不直接将UIWebView子类化,但这可以在许多常见的第三方库中完成,例如Google AdMob和Millenial Media SDK.
对于我们这些将Crittercism更新到版本4.1.2的人,他们希望它可以解决问题,但事实并非如此.我可以提供一个非常丑陋但简单的解决方案:UIWebView在调用之前创建并初始化[Crittercism enableWithAppID:@"***...***"];
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
...
UIWebView* fakeWebView = [[[UIWebView alloc] initWithFrame:CGRectMake(-1, -1, 1, 1)] autorelease];
[fakeWebView loadHTMLString:@"<!DOCTYPE HTML><html><body>I need Crittercism</body></html>" baseURL:nil];
[mainViewController.view addSubview:fakeWebView];
[Crittercism enableWithAppID:@"***...***"];
...
}
Run Code Online (Sandbox Code Playgroud)
这个技巧不仅让我摆脱了所描述的问题,而且还略微加快了真实的第一次初始化UIWebView.
| 归档时间: |
|
| 查看次数: |
11366 次 |
| 最近记录: |