修改 /Users/nmlhm/Qt5.7.1/5.7/Src/qtwebview/src/webview/qwebview_ios.mm 文件中QtWebViewDelegate类,添加
WKNavigationDelegate代理函数
-(void)webView:(WKWebView*)webViewdecidePolicyForNavigationAction:(WKNavigationAction*)navigationActiondecisionHandler:(void(^)(WKNavigationActionPolicy))decisionHandler;的实现,这个函数控制在发送请求之前,决定是否跳转
//WKWebView默认禁止了一些跳转,此处打开
-(void)webView:(WKWebView*)webViewdecidePolicyForNavigationAction:(WKNavigationAction*)navigationActiondecisionHandler:(void(^)(WKNavigationActionPolicy))decisionHandler{
//if(webView!=qIosWebViewPrivate->uiWebView){
//decisionHandler(WKNavigationActionPolicyAllow);
//return;
//}
UIApplication*app=[UIApplicationsharedApplication];
//if([qIosWebViewPrivate->url().toNSURL().schemeisEqualToString:@"tel"]){
//if([appcanOpenURL:qIosWebViewPrivate->url().toNSURL()]){
//[appopenURL:qIosWebViewPrivate->url().toNSURL()];
//decisionHandler(WKNavigationActionPolicyCancel);
//return;
//}
//}//默认不能跳转到iTunes,此处打开限制
if([qIosWebViewPrivate->url().toNSURL().absoluteStringcontainsString:@"itunes.apple.com"]){
if([appcanOpenURL:qIosWebViewPrivate->url().toNSURL()]){
[appopenURL:qIosWebViewPrivate->url().toNSURL()];//不能少
decisionHandler(WKNavigationActionPolicyAllow);
return;
}
}
decisionHandler(WKNavigationActionPolicyAllow);
}
qt5.9.1中 文件变为 /Users/nmlhm/Qt5.9.1/5.9.1/Src/qtwebview/src/webview/qwebview_darwin.mm,
qwebview_ios.mm这个文件没有了
5.9.4及以后版本可以正常跳转到iTunes下载地址