【问题标题】:Safari crash while taking photo in iPhone 4S [iOS 8.1]在 iPhone 4S [iOS 8.1] 中拍照时 Safari 崩溃
【发布时间】:2014-12-27 10:27:33
【问题描述】:

我正在使用以下代码来捕获照片和显示/存储。相同的代码在装有 iOS 7.1.2 的 iPhone 5 中运行良好,但在装有 iOS 8.1 的 iPhone 4S 中,每次拍照时,Safari 都会崩溃。

<body>
    <img id="uploadPreview" style="width: 100px; height: 100px;">
    <input id="uploadImage" type="file" name="myPhoto" onchange="PreviewImage();">
    <script type="text/javascript">
        function PreviewImage() {
            var oFReader = new FileReader();
            oFReader.readAsDataURL(document.getElementById("uploadImage").files[0]);
            oFReader.onload = function (oFREvent) {
                document.getElementById("uploadPreview").src = oFREvent.target.result;
            };
        };
    </script>
</body>

Demo
拍照后在 safari 中显示以下消息

此网页出现问题,因此已重新加载

更新 现在我在同一台设备上执行相同的任务,但使用的是 iOS 版本 8.1.2。还是出现了同样的问题

【问题讨论】:

  • 在 iPhone 4s 上更新 8.1.2 后仍然会发生 :(
  • 我还不知道。
  • 是的,就我而言,它只是在拍照时崩溃(如问题所述)。从库中选择时不是。但我还不能解决这个问题。
  • 在运行最新版本 (8.1.3) 的 6 Plus 中也遇到了这种情况。如果您选择现有照片,没问题。但是,如果您“实时”拍摄照片,则会发生崩溃。
  • 我使用IPhone 5 使用最新的 iOS (8.1.3) 对此进行了检查,它在两种情况下都运行良好,即拍照和从库中选择。但仍然无法在 8.1.3 的 iPhone 4S 中使用

标签: ios iphone safari


【解决方案1】:

虽然 8.1 更新在较新的设备上修复了它,但在较旧的设备(第一代 iPad、iPad Mini、iPhone 4S)上问题仍然存在。 iOS 8.2 并没有做得更好。但是,随着昨天 8.3 的发布,问题得到了解决。在 8.3 更新之前,我检查了 iOS 8.2 并且每张图片 safari 都崩溃了。有时在相机模式下,有时在拍照后。希望现在其他人也能解决这个问题。

对于其他设备,恢复出厂设置确实解决了问题,但也删除了所有应用、设置和数据。不是真的要走的路。

我用于测试的代码可以在这个小提琴中找到:http://jsfiddle.net/d6nwubx3/6/

var inputComponent = document.getElementById('fileuploader');
inputComponent.addEventListener('change',handleFileSelect, false);
function handleFileSelect( event ) { 
    var image = event.target.files[0];
    // Do something with image
}

【讨论】:

  • 我在我的 iPhone 6+ w/8.3 上尝试了我们的演示,但在拍照时仍然遇到同样的错误,但使用照片库工作。使用 google chrome 应用程序没有问题,但 safari 每次都失败。
  • 我发现问题在某些设备上仍然存在。安迪,你能提供一个崩溃日志(developer.apple.com/bug-reporting/ios/crash)吗?目前我附近没有设备,Apple 想要一个崩溃日志。真的很棒。
  • @gjadmiraal 我向 Apple 提交了一份错误报告,其中包含一个示例项目来重现该问题。可以在此处找到报告的镜像:openradar.me/radar?id=5006458726907904
  • @jonsibley 关于错误报告的任何更新?是否有任何解决方法,因为我可以始终在 iPhone 6 中看到该问题。
  • @kumar 不幸的是,还没有关于错误报告的更新。
【解决方案2】:

这是一个似乎在 iOS 8.1.2 和 8.1.3 中发生的错误。我能够在多种情况下重现该问题,并且正在向 Apple 提交错误。

可能的解决方法: 通过设置允许用户选择多个文件

<input type="file" name="img" multiple>

这会禁用“拍照”选项,但您必须支持多个文件上传。

在其他浏览器上,设置capture 属性可以更好地控制是否允许用户拍照作为文件选择的一部分,但根据how to disable capture when upload image file (using safari on ipad) 移动 safari 不支持.

【讨论】:

    猜你喜欢
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多