在WKWebView的UIDelegate事件中,调起文件选择对话框,并将选取的文件回调回去。
self.webView.UIDelegate = self;
- (void)webView:(WKWebView*)webView runOpenPanelWithParameters:(WKOpenPanelParameters*)parameters initiatedByFrame:(WKFrameInfo*)frame completionHandler:(nonnull void (^)(NSArray * _Nullable))completionHandler {
NSOpenPanel* panel = [NSOpenPanel openPanel];
panel.allowsMultipleSelection = parameters.allowsMultipleSelection;
panel.canChooseDirectories = parameters.allowsDirectories;
panel.allowedFileTypes = @[@"png", @"jpg", @"BMP", @"TIFF"];//图片类型
NSModalResponse result = [panel runModal];
if (result == NSModalResponseOK) {
completionHandler([panel URLs]);
}
else {
completionHandler(nil);
}
}