在我的项目中,我有一个Web视图。 Web视图中加载的页面包含文件(Image)上传程序。单击文件上传器上的选择图像按钮,然后打开手机的图像选择器。我无权在网页上进行更改,因为它是客户组织的网页。有没有办法在应用程序中检测UIImagePicker的打开。
<input id=“fileUpload" name=“fileUpload" type="file" data-bind="value: UploadedFile">
这是用于文件选择器的html。单击文件选择器时,弹出UIImage Picker View。我想检测它。
答案 0 :(得分:1)
在网页中,对于“选择图像”按钮,编写Java脚本功能。 iOS支持使用以下语法提供的自定义URL方案
方案://主机/路径查询
.html中的示例Java脚本函数:
x-www-form-urlencoded
在类.m文件中,Webview委托方法 <p class="btn-upload" onclick="onUploadButtonClick()" >
<span> Upload File </span>
</p>
<script>
function onUploadButtonClick() {
window.location = "ios://button-upload”;
}
</script>
内部比较主机。如果匹配则调用你的目标c函数在app中打开UIImagePicker。
webView:shouldStartLoadWithRequest:request:navigationType
奖励:确保您已在#pragma mark - UIWebView Delegates
- (void) webViewDidFinishLoad:(UIWebView *)webView {
//Do after web view load.
}
- (BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType;
{
// get the action from the path
NSString *actionType = request.URL.host;
if ([actionType isEqualToString:@“button-upload”]) {
// do something in response to your javascript action
// if you used an action parameters dict, deserialize and inspect it here
[self openImagePicker]; //Cal your method to open UIImagePicker
}
// make sure to return NO so that your webview doesn't try to load your made-up URL
return NO;
}
中添加了App Transport Security Key。