2

我需要通过文件加载 JavascriptHTML文件。我按以下屏幕截图所示的顺序构建了文件。

在此处输入图像描述

HTMLhead 标签包含Javascript要调用的文件,如下所示:

<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<script type="text/javascript" src="AjaxCapturer.js"></script>
<script type="text/javascript" src="authenticate.js"></script>
</head>

所以我一直在使用UIWebView加载页面及其正确加载,如下面的屏幕截图所示。

在此处输入图像描述

现在,如果我使用相同的东西运行,WKWebView那么页面将继续加载,如下面的屏幕截图所示。

在此处输入图像描述

Javascript文件正在触发(添加警报),但页面未加载到WKWebView. 下面是我的代码逻辑:

-(void)loadWebVW{

    WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
    WKPreferences *pref = [[WKPreferences alloc] init];
    pref.javaScriptEnabled = YES;
    pref.javaScriptCanOpenWindowsAutomatically = YES;
    config.preferences = pref;

    CGRect vwFrame = CGRectMake(10, 80, 300, 480);
    WKWebView *webVW = [[WKWebView alloc] initWithFrame:vwFrame configuration:config];
    [self.view addSubview:webVW];
    webVW.navigationDelegate = self;
    webVW.UIDelegate = self;

    NSString *htmlPath = [[NSBundle mainBundle] pathForResource:@"offline_Forms"
                                                         ofType:@"html"];
    NSString *html = [NSString stringWithContentsOfFile:htmlPath
                                               encoding:NSUTF8StringEncoding
                                                  error:nil];
    NSURL *baseUrl = [NSURL fileURLWithPath:
                      [NSString stringWithFormat:@"%@/JavaScript",
                       [[NSBundle mainBundle] bundlePath]]];
    [webVW loadHTMLString:html baseURL:baseUrl];

    //or//

    // [webVW loadRequest:[NSMutableURLRequest requestWithURL:[NSURL URLWithString:htmlPath]]];

}

我们是否需要添加任何额外的东西来加载它WKWebView。请帮助解决这个问题。提前致谢。

4

1 回答 1

1

我发现这是iOS10.3 中的一个已知问题,后来在iOS10.3.2 中修复,有关更多信息,请参阅Apple 开发者论坛的链接。有时我觉得存在同样的问题,Simulator但在物理设备中运行良好。因此,请确保每次验证WKWebView物理设备中的功能。

于 2018-02-02T07:06:08.543 回答