【问题标题】:Load a javascript file in a UIWebView在 UIWebView 中加载 javascript 文件
【发布时间】:2015-12-08 19:22:37
【问题描述】:

如何加载UIWebView,然后从我的服务器请求一个javascript文件并将其加载到UIWebView

假设 js 代码出现问题,我对其进行了更新,您可以刷新应用程序,以便它发送对 javascript 文件的新请求,您将获得新版本。

编辑:

我已经有了UIWebView,它会加载一个网站。我知道如何从主包加载 js,但我需要在 UIWebViewDIdFinishLoad 中发送请求并从我的服务器获取 javascript 文件以加载到 UIWebView。

【问题讨论】:

    标签: javascript ios objective-c uiwebview nsurl


    【解决方案1】:

    您必须使用 Alamofire 或 AFNetworking 下载 js 文件。从 Internet 下载文件的方法非常简单。下载并保存并使用它们来加载 Web 视图。

    Alamofire

    AFNetworking

    下载

    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
    
    NSURL *URL = [NSURL URLWithString:@"http://example.com/download.zip"];
    NSURLRequest *request = [NSURLRequest requestWithURL:URL];
    
    NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
        NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
        // Save this following url to load the file
        return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
    } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
        NSLog(@"File downloaded to: %@", filePath);
        [[NSUserDefaults standardUserDefaults] setURL:filePath forKey:@"URL_TO_SAVE"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    
    }];
    [downloadTask resume];
    

    加载到 WebView

    NSURL *URL = [[NSUserDefaults standardUserDefaults] URLForKey:@"URL_TO_SAVE"];
    NSString *javaScript = [NSString stringWithContentsOfURL:URL encoding:NSUTF8StringEncoding error: nil];
    [webView stringByEvaluatingJavaScriptFromString:javaScript];
    

    【讨论】:

    • 您是否有教程或示例代码说明如何使用 AFNetworking 下载、保存并用于加载网络?
    • 随机问题,下载文件是否会多次保存到iOS设备并占用iPhone内存?
    • 在这种情况下,如果您不更改文件名,我认为文件将被覆盖(我不确定)
    • 如果你必须关心,你必须管理文件,这是一个全新的话题。您需要手动查看文件夹并删除不需要的内容!
    • 好的。这种下载文件并将其加载到 Web 视图中的方法被 Apple 接受了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多