我在网站上有一张注册表,要求用户上传自己的照片。我们在Facebook上发送此表单的链接,我们的大多数用户通过Facebook App的inApp Web浏览器在移动设备上打开它。
我尝试使用多个设备和操作系统调试问题:
iOS 7& 8: 单击输入字段时,将显示使用相机或现有图像的对话框。无论我点击什么,InApp浏览器都会崩溃,在重新启动FB应用程序之前我无法访问该链接。
Android 4.3: InApp浏览器不会崩溃,但不会出现任何对话框。因此,当用户单击文件上载字段时,没有任何反应。
我尝试插入一个脚本,检测表格是否由Facebook InApp浏览器打开并重定向到_blank页面(在浏览器中打开),但这也不起作用,我出去了选项。
向用户输出他/她必须在浏览器中打开表单的消息并不是一个真正的选项。
除了这些之外,还有一种简单的方法可以解决这个问题吗?
编辑: FB Messenger应用中不会出现此问题,只能使用普通的FB应用。
答案 0 :(得分:1)
我面临着同样的问题。到现在为止,我想出了如何克服ios上的问题:你必须在输入文件标签中添加 multiple 选项。
示例:
<input name="file" type="file" id="file" multiple>
仍然不知道如何在Android中解决这个问题。 我希望它有所帮助!
编辑:我仍然无法从Android应用上传照片,但我能够在上传文件按钮上捕获点击事件。所以,我所做的是一个草率的解决方案: 点击事件会触发警报,并显示一条消息,要求用户单击右上角的按钮并选择“打开方式...”选项并选择浏览器继续上传。 它有效,但不漂亮!我希望能够直接从应用程序内的浏览器窗口上传照片,或者能够在默认浏览器上打开浏览器窗口。
答案 1 :(得分:-1)
在iOS的CDVInAppBrowserNavigationController中添加此代码:
-(void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion
{
if ( self.presentedViewController)
{
[super dismissViewControllerAnimated:flag completion:completion];
}
}
它将按要求开始工作。您可以在iOS 8 SDK: modal UIWebView and camera/image picker
找到更多信息我仍然在寻找Android的解决方案。希望它有所帮助:)