需求
用WebView顯示用戶從手機相冊中選擇的圖片或視頻狠鸳。
一腾誉、UIWebView加載本地圖庫選擇的圖片或視頻(真機)
UIWebView實現(xiàn)很簡單躯概,直接調(diào)用JS方法,將選擇的圖片或視頻的全路徑分別放置
<img>
或<video>
標簽的src
中就可以拆挥,直接就可以顯示。
部分代碼參考
插入圖片JS方法
function insertImage(url) {
if(!url) return;
document.execCommand('insertHtml', false, '<p><img class="MO_CLIP" style="max-width: 50% !important;" src="' + url + '"/></p><br>');
}
插入視頻JS方法
function insertVideo(url) {
document.execCommand('insertHtml', false, '<p><video class="MO_CLIP" style="max-width: 50% !important; background:black;" src="' + url + '" controls="controls"></p><br>');
}
之后在選擇圖片或視頻的回調(diào)中將路徑傳遞進去就可以顯示了某抓。
二纸兔、WKWebView加載本地圖庫選擇的圖片或視頻(真機)
WKWebView實現(xiàn)比較麻煩,直接按照UIWebView那種加載方法會發(fā)現(xiàn)在真機上顯示不出來(網(wǎng)上有人說在模擬器上可以否副,有人說在真機上獲取的路徑有問題)汉矿,用WKWebView實現(xiàn)的需要借助GCDWebServer,就是先在沙盒某一個目錄下設置服務的根目錄备禀,將選擇的圖片或視頻復制一份到沙盒目錄某文件夾下负甸,然后通過
http://localhost/xxx
這樣的方式去找到復制的圖片或者視頻流强,之后再調(diào)用JS方法,將選擇的圖片或視頻的全路徑分別放置<img>
或<video>
標簽的src
中就可以呻待,就可以顯示了打月。需要用的三方庫GCDWebServer。
部分代碼參考
插入圖片和視頻的JS方法和上述一致
創(chuàng)建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;
}
開啟監(jiān)聽
//本地服務開始監(jiān)聽
if (![[GCDWebServerUtils sharedInstance] isRunning]) {//如果當前還在運行的話就不在啟動了
[[GCDWebServerUtils sharedInstance] startWithPort:80 bonjourName:nil];
}
綜上蚕捉,WKWebView加載的HTML中就再插入本地視頻標簽
<video>
和圖片標簽<img>
就可以正常顯示了奏篙。