当尝试上传表单中的照片时,Facebook的inAppbrowser崩溃了

时间:2015-03-31 10:25:15

标签: javascript html ios facebook forms

我在网站上有一张注册表,要求用户上传自己的照片。我们在Facebook上发送此表单的链接,我们的大多数用户通过Facebook App的inApp Web浏览器在移动设备上打开它。

我尝试使用多个设备和操作系统调试问题:

iOS 7& 8: 单击输入字段时,将显示使用相机或现有图像的对话框。无论我点击什么,InApp浏览器都会崩溃,在重新启动FB应用程序之前我无法访问该链接。

Android 4.3: InApp浏览器不会崩溃,但不会出现任何对话框。因此,当用户单击文件上载字段时,没有任何反应。

我尝试插入一个脚本,检测表格是否由Facebook InApp浏览器打开并重定向到_blank页面(在浏览器中打开),但这也不起作用,我出去了选项。

向用户输出他/她必须在浏览器中打开表单的消息并不是一个真正的选项。

除了这些之外,还有一种简单的方法可以解决这个问题吗?

编辑: FB Messenger应用中不会出现此问题,只能使用普通的FB应用。

2 个答案:

答案 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的解决方案。希望它有所帮助:)