1. 程式人生 > >解決WKWebView載入本地HTML頁面ajax請求跨域的問題

解決WKWebView載入本地HTML頁面ajax請求跨域的問題

一、建立WKWebView的時候設定WKWebViewConfiguration的屬性_allowUniversalAccessFromFileURLs為YES,程式碼如下
    WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
        [configuration setValue:@YES forKey:@"_allowUniversalAccessFromFileURLs"];
    WKWebView *wkWebView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:configuration];
    // 遍歷列印私有屬性
    unsigned int count;
    Ivar *ivarList = class_copyIvarList([WKWebViewConfiguration class], &count);
    for (int i = 0; i < count; i++) {
        Ivar ivar = ivarList[i];
        NSLog(@"私有屬性%s", ivar_getName(ivar));
    }
    
    NSString* htmlPath = [[NSBundle mainBundle] pathForResource:@"Article" ofType:@"html"];
    NSMutableString* appHtml = [NSMutableString stringWithContentsOfFile:htmlPath encoding:NSUTF8StringEncoding error:nil];

    NSURL *baseURL = [NSURL fileURLWithPath:htmlPath];
    [wkWebView loadHTMLString:appHtml baseURL:baseURL];
    [self.view addSubview:wkWebView];
    wkWebView.frame = self.view.bounds;