检测 UIImagePicker 是否从 Web 视图打开



在我的项目中,我有一个网络视图。在 Web 视图中加载的页面包含一个文件(图像(上传器。单击文件上传器上的选择图像按钮后,手机的图像选择器将打开。我无权更改网页,因为它是客户组织的网页。有没有办法检测应用程序中UIImagePicker的打开。

<input id=“fileUpload" name=“fileUpload" type="file" data-bind="value: UploadedFile">

这是用于文件选取器的 html。单击文件选取器时,将弹出 UIImage 选取器视图。我想检测它。

在网页中,对于"选择图像"按钮,编写一个 Java 脚本函数。 iOS 支持自定义 URL 方案

,语法如下

scheme://host/path?query

.html中的 Java 脚本函数示例:

 <p class="btn-upload" onclick="onUploadButtonClick()" >
    <span>  Upload File </span> 
</p>
<script>
    function onUploadButtonClick() {
        window.location = "ios://button-upload”;
    }
</script>

在类 .m 文件中,在 Webview 委托方法中webView:shouldStartLoadWithRequest:request:navigationType比较主机。 如果匹配,则调用目标 C 函数以在应用中打开 UIImagePicker。

#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;
}

奖励:确保您已在info.plist中添加了应用程序传输安全密钥。

相关内容

  • 没有找到相关文章

最新更新