【问题标题】:How to implement default UIImagePickerController's delegate of an UIWebView?如何实现默认 UIImagePickerController 的 UIWebView 委托?
【发布时间】:2015-07-15 08:39:08
【问题描述】:

我在视图中嵌入了UIWebView。 如果点击此 web 视图页面中的任何文件字段,将显示默认的 UIImagePicker

如何获取此默认选择器或设置其委托?

这是我的 Object-C 代码

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://jsfiddle.net/wowaqpcf/embedded/result/"]]];
    [webView setDelegate:self];
    [self.view addSubview:webView];
}

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    return YES; // => set breakpoint at this line -> it doesn't stop when picker opens
}

@end

或者在iPhone上通过safari打开this page,你就会明白我的意思了。

<form>
  <input type="file">
</form>

我尝试捕捉webView:shouldStartLoadWithRequest:navigationType:,但似乎呈现这个选择器并不通过委托方法。 (我认为这个选择器可能会通过导航到一个特殊的方案来呈现)

非常感谢。

【问题讨论】:

  • 你想为选择器或网页视图实现委托吗?你哪里有问题
  • 我想为网络视图的“默认”选择器实现委托
  • 添加更多代码或输出的快照
  • 你现在尝试过只实现didFinishPickingMediaWithInfo
  • 你找到解决办法了吗?

标签: ios objective-c swift uiwebview uiimagepickercontroller


【解决方案1】:

编辑:默认选择器无法实现您想要做的事情。如果您想裁剪选定的图像,您应该在网页中提供 Javascript 代码。

【讨论】:

  • 如何从UIWebView 获得picker?当 webview 中有文件字段时,如果你触摸它,UIImagePicker 会自动出现。我的问题的意思是“如何获得这个选择器”对不起明确的意思
  • 没有。如果点击页面中的任何链接,您的代码会创建新的选择器并显示它。我需要的是在我的网页中点击file field 时获取default 选择器。
  • 在你的 iPhone safari 上打开 this link
  • @HaidangKoltec 您必须输入 if 条件来检查选择器何时打开。
  • 选择器打开时不会加载任何请求。这样我就无法捕捉到这种情况。我已经在我的帖子中提到过这种方式
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多