最近在把UIWebview切换为WKWebview,遇到一个问题无法解决,请教各位!
代码很简单,是初始化一个WKWebview,然后加载优酷,
问题是打开之后,所有影片都无法点击,只有上面的“电视剧,电影”这种导航可以点。
但是如果加载的是爱奇艺或者乐视就都没有问题。
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc]init];
config.allowsInlineMediaPlayback = YES;
config.mediaPlaybackRequiresUserAction = YES;
m_webView = [[WKWebView alloc]initWithFrame:CGRectMake(0, 30, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 30) configuration:config];
m_webView.backgroundColor = [UIColor redColor];
[self.view addSubview:m_webView];
[m_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.youku.com"]]];
[m_webView addObserver:self forKeyPath:@"estimatedProgress" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];
我把测试项目放在百度云盘了,下载地址: http://pan.baidu.com/s/1kTGa6kJ
需要用真机调试,因为模拟器会一直重定向,最后url会变成null导致网页无法打开。
非常感谢!
没法打开是因为,优酷主页用了 target=“_blank”,打开新页面. 处理方法 参考 1.http://www.jianshu.com/p/3a75d7348843 2.http://stackoverflow.com/questions/25713069/why-is-wkwebview-not-opening-links-with-target-blank
- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures
{
if (!navigationAction.targetFrame.isMainFrame) {
[webView loadRequest:navigationAction.request];
}
return nil;
}