在iPhone 4S拍照时Safari崩溃[iOS 8.1]

时间:2014-10-31 06:49:07

标签: ios iphone safari

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

<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。仍然出现同样的问题

2 个答案:

答案 0 :(得分:1)

虽然8.1更新将其修复在较新的设备上,但在旧设备(首先是iPad,iPad Mini,iPhone 4S)上仍存在问题。 iOS 8.2没有做得更好。但是,随着昨天发布的8.3,问题得到了解决。在8.3更新之前,我使用iOS 8.2进行了检查,并且每个图片都在崩溃之前。有时在相机模式下,有时在拍摄照片后。希望这个问题现在也可以解决。

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

我用于测试的代码可以在这个小提琴中找到: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
}

答案 1 :(得分:0)

这是一个似乎在iOS 8.1.2和8.1.3中发生的错误。我能够在多个场景中重现该问题,而我正在向Apple提交错误。

可能的解决方法: 允许用户通过设置

选择多个文件
<input type="file" name="img" multiple>

这会禁用&#34;拍照&#34;选项,但您必须支持多个文件上传。

在其他浏览器上,设置capture属性可以更好地控制是否允许用户在文件选择中拍照,但根据how to disable capture when upload image file (using safari on ipad) ,它不是受到移动游猎的尊重