2016-03-20 19 views
0

Simülatörde WKWebView ile bilinmeyen bir hata alıyorum. Bir arkadaşı Iphone'la aynı şeyi alır. Bir web sunucusundan bir sayfa yüklediğimde, sayfanın içindeki bir düğmeyi tıklatmayı deniyorum, ancak webView çöküyor ve ekranda boş bir sayfa görüyorum. Bu bir JavaScript sorunu değil.WKWebView kilitlenme iOS9

Benzer sorunları buldum ancak çözüm bulunamadı.

Kodum burada (bazı insanlar ... CGRectMake veya 32/64 bit uyumluluk söz): Önceden

- (void) webView:(WKWebView *)webView didFailLoadWithError:(NSError *)error url:(NSString *)url { 

    WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] 
              init]; 

    WKUserContentController* userController = [[WKUserContentController alloc]init]; 

    [userController addScriptMessageHandler: self name:@"musique"]; 
    [userController addScriptMessageHandler: self name:@"upload"]; 
    configuration.userContentController = userController; 

    self.webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 20, self.view.frame.size.width, self.view.frame.size.height-20) configuration:configuration]; 

    [self.view addSubview:self.webView]; 
    NSLog(@"ici web"); 
    // Setup WKUserContentController instance for injecting user script 




    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]]; 



} 

Teşekkür

sorun iki kez tekrar funtion addScriptMessageHandler yürüterek kaynaklanır
+0

Eğer JS bir kilitlenmeye neden olabilir veya bazı özyinelemeli aramalar yığını dolmaya - my frie çünkü: fonksiyonu viewDidLoad da takip kodu yerleştirebilirsiniz shuld Ve benim telefonlarımızda böyle bir şey yaşamadım. – holex

cevap

1

, Sen

WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] 
             init]; 
WKUserContentController* userController = [[WKUserContentController alloc]init]; 

[userController addScriptMessageHandler: self name:@"musique"]; 
[userController addScriptMessageHandler: self name:@"upload"]; 
configuration.userContentController = userController; 

self.webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 20, self.view.frame.size.width, self.view.frame.size.height-20) configuration:configuration]; 

[self.view addSubview:self.webView]; 
NSLog(@"ici web"); 
// Setup WKUserContentController instance for injecting user script 

[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]]; 
+0

Bu işlevi '- (void) web Görünümü: (WKWebView *) webView didFailLoadWithError: (NSError *) hata url: (NSString *) url' WKWebView web sitesini yüklediğinde iki kez çalıştırılabilir. –