UIWebView和WKWebView加载本地图库选择的图片和视频
需求
用WebView显示用户从手机相册中选择的图片或视频。一、UIWebView加载本地图库选择的图片或视频(真机)
UIWebView实现很简单,直接调用JS方法,将选择的图片或视频的全路径分别放置
文章图片
');
}
插入视频JS方法
function insertVideo(url) {
document.execCommand('insertHtml', false, '
之后在选择图片或视频的回调中将路径传递进去就可以显示了。 二、WKWebView加载本地图库选择的图片或视频(真机)
【UIWebView和WKWebView加载本地图库选择的图片和视频】WKWebView实现比较麻烦,直接按照UIWebView那种加载方法会发现在真机上显示不出来(网上有人说在模拟器上可以,有人说在真机上获取的路径有问题),用WKWebView实现的需要借助GCDWebServer,就是先在沙盒某一个目录下设置服务的根目录,将选择的图片或视频复制一份到沙盒目录某文件夹下,然后通过部分代码参考 插入图片和视频的JS方法和上述一致 创建GCDWebSerVer单例http://localhost/xxx
这样的方式去找到复制的图片或者视频,之后再调用JS方法,将选择的图片或视频的全路径分别放置或
标签的
src
中就可以,就可以显示了。需要用的三方库GCDWebServer。
+ (GCDWebServer*)sharedInstance
{
static GCDWebServer *_sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedInstance = [[GCDWebServer alloc] init];
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,
YES) objectAtIndex:0];
[_sharedInstance addGETHandlerForBasePath:@"/" directoryPath:documentPath indexFilename:nil cacheAge:3600 allowRangeRequests:YES];
// 此处设置本地服务器根目录
});
return _sharedInstance;
}
开启监听
//本地服务开始监听
if (![[GCDWebServerUtils sharedInstance] isRunning]) {//如果当前还在运行的话就不在启动了
[[GCDWebServerUtils sharedInstance] startWithPort:80 bonjourName:nil];
}
综上,WKWebView加载的HTML中就再插入本地视频标签和图片标签
就可以正常显示了。
推荐阅读
- 急于表达——往往欲速则不达
- 第三节|第三节 快乐和幸福(12)
- 20170612时间和注意力开销记录
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 对称加密和非对称加密的区别
- 眼光要放高远
- 樱花雨
- 前任
- 2020-04-07vue中Axios的封装和API接口的管理
- 烦恼和幸福