javascript - 在 UIWebView 中加载一个 javascript 文件

标签 javascript ios objective-c uiwebview nsurl

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

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

编辑:

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

最佳答案

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

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];

关于javascript - 在 UIWebView 中加载一个 javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32536892/

相关文章:

javascript - React testing-library - 测试在第一个 useEffect 钩子(Hook)中设置状态的 Promise

javascript - Jquery输出值问题

ios - 在 iOS 中,是什么导致了这个崩溃?

ios - 将其他 ViewController 推送到 UINavigationController 的最佳方法

ios - initWithObjects 上的局部变量、NSArray、EXEC_BAD_ACCESS

javascript - 在js中获取二叉搜索树的最大值

javascript - ChartJS 工具提示位置/放置

ios - 如何在使用 Callkit 接听电话后保留 native UI

ios - 无法在 Swift 3 中为 URL 编码字符串

iphone - 使用一对多关系按依赖属性对 NSFetchRequest 进行排序