2016-10-19 3 views
1

二つの質問を予期しないURLを受信しましたwkwebviewは、ウェブプロセスから

たら、2.のindex.htmlのコードは、「document.body.appendChild(インラインフレーム)」、空白にシミュレータの実行に実行し、そしてXcodeのログ: 'ファイル::

は、予期しないウェブプロセスからURLを受信します/ //Users/John_Chen/Library/Developer/CoreSimulator/Devices/20ABEC24-78BD-4577-9AA5-35CB1520F620/data/Containers/Data/Application/30A53A36-4A05-4491-A400-CEBF5F9E7D21/Documents/test/2.html ' Webプロセスから無効なメッセージ "WebPageProxy.DecidePolicyForNavigationAction"を受信しました。

誰でも助けることができますか? TKS!

iOSのコード:文書へ

1.unZip test.zip:

- (void)copyFloderToSandbox 
{ 
    NSFileManager *fm = [NSFileManager defaultManager]; 
    NSString *originalPlayerPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"zip"]; 
    NSString *originalMovi_01Path = [[NSBundle mainBundle] pathForResource:@"movi_01" ofType:@"zip"]; 
    NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]; 
    NSString *PDoc = [documentPath stringByAppendingPathComponent:@"test"]; 
    NSString *MDoc = [documentPath stringByAppendingPathComponent:@"movi_01"]; 

    if (![fm fileExistsAtPath:PDoc]) 
{ 
    [SSZipArchive unzipFileAtPath:originalPlayerPath toDestination:documentPath]; 
} 
    if (![fm fileExistsAtPath:MDoc]) 
{ 
    [SSZipArchive unzipFileAtPath:originalMovi_01Path toDestination:documentPath]; 
} 
} 

2.WKWebView負荷のindex.html:

- (void)viewDidLoad { 
[super viewDidLoad]; 

[self copyFloderToSandbox]; 

self.webView = [[WKWebView alloc]initWithFrame:self.view.bounds configuration:[self configWeb]]; 
_webView.navigationDelegate = self; 
_webView.UIDelegate = self; 
[self.view addSubview:_webView]; 


NSString *playerPath = [OMDBManager getLocalDataFilePathWithPathComponent:@"test"]; 
NSString *html = [playerPath stringByAppendingPathComponent:@"index.html"]; 
NSString *moviePath = [OMDBManager getLocalDataFilePathWithPathComponent:@"movi_01"]; 
NSString *moviParameter = [NSString stringWithFormat:@"movieroot=%@",playerPath]; 
NSString *playParameter = [NSString stringWithFormat:@"playerroot=%@",playerPath]; 
NSString *baseString = [NSString stringWithFormat:@"%@?%@&%@",html,moviParameter,playParameter]; 

NSURL *baseUrl = [NSURL fileURLWithPath:baseString isDirectory:YES]; 
NSString *htmlContent = [NSString stringWithContentsOfFile:html encoding:NSUTF8StringEncoding error:nil]; 
[_webView loadHTMLString:htmlContent baseURL:baseUrl]; 
} 

- (WKWebViewConfiguration *)configWeb 
{ 
    WKWebViewConfiguration *configuration = [[WKWebViewConfiguration  alloc]init]; 
configuration.preferences = [[WKPreferences alloc]init]; 
configuration.preferences.minimumFontSize = 18; 
configuration.preferences.javaScriptCanOpenWindowsAutomatically = YES; 
configuration.userContentController = [[WKUserContentController alloc]init]; 
[configuration.userContentController addScriptMessageHandler:self name:@"readJsonFile"]; 
return configuration; 
} 

files in document directory codes in index.html

答えて

1

Iそれはあなたが方法を使用していないためだと思うloadFileURL:allowingReadAccessToURL: 2番目の引数は、htmlがあるディレクトリです。

+0

私はgitHubでWKWebviewのバグを解決しました。私はUIWebViewで置き換えます。 – JohnChen

+0

UIWebViewはWKWebViewよりもはるかに遅いので、もう一度試してみるべきだと思います –

関連する問題