X代码10.1
第12.0.1版
我使用wkwebview的函数“evaluateJavaScript”来回调图像url,并让wkwebview可以显示该图像。
在模拟器上成功运行。
但它的设备出现故障。
这有什么不对?
模拟器url是不错的工作:
file:///Users/xxxxxx/Library/Developer/CoreSimulator/Devices/8FB6E110-F30F-425D-9011-A196E78BE7CB/data/Containers/Data/Application/E122A32D-7E21-4EBA-A9E7-BC15E8468A11/Documents/20190409150915.png
设备URL失败:
不允许加载本地资源:file:///var/mobile/Containers/Data/Application/03F63826-7849-47C3-A6DF-E1EB1113FF0A/Documents/20190408203417.png
NSArray *imagesArray = [[NSArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"pickerImages"]];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"file://%@/",documentsDirectory];
NSString *imagesString = pickerImagesArray.firstObject;
NSString *jscript = @"";
if ([imagesString isEqualToString:@""])
{
jscript = [NSString stringWithFormat:@"getimage_cb('%@')" , @""];
} else {
NSString *output = [NSString stringWithFormat:@"%@%@",filePath,imagesString];
jscript = [NSString stringWithFormat:@"%@", [NSString stringWithFormat:@"getimage_cb('%@')" , output]];
}
[self.myWkwebView evaluateJavaScript:jscript completionHandler:^(id object, NSError * _Nullable error) {
}];
1条答案
按热度按时间qyswt5oh1#
关于这一特定主题,在SO上有相互矛盾的答案。
我所了解到的是,您可以直接从应用程序包中加载图像,但不能从其文档目录中加载。
一种可能的解决方法是将图像加载到UIImage示例中,将其转换为base64并将其传递给evaluateJavascript方法: