javascript - 在 iOS6 上从相机上传图像的 HTML/JS

标签 javascript html ios6

我有这个片段:

<script>
        var reader = new FileReader();
        reader.onload = (function(theFile) {
            return function(e) {
                // Render thumbnail.
                var span = document.createElement('span');
                span.innerHTML = ['<div id="wrap"><img id="image" class="thumb draggable" src="', e.target.result,
                    '" title="', escape(theFile.name), '" draggable="true" /></div>'].join('');
                document.getElementById('list').insertBefore(span, null);
            };
        })(f);

        // Read in the image file as a data URL.
        reader.readAsDataURL(f);

我在 iOS 的移动应用程序中使用它,它从相机捕获数据并在 div 中显示预览。一切正常,除了我第一次在新设备上加载应用程序而未经批准访问照片(它会在您第一次尝试拍照时提示它)。

这里的问题是,当我在用户批准访问用户照片之前调用 reader.readAsDataURL(f); 时,未触发 reader.onload

是否有任何用于用户批准的监听器,或者是否有一种方法可以提示用户在页面加载时有权访问相机?

谢谢

最佳答案

我认为这里的问题有两个方面。

首先,我假设我们正在收听某种 onchange <input type="file" /> 上的事件调用相机/用户照片的标记,然后调用读取文件的代码。如果没有,我们绝对应该这样做,因为这将等待适当的事件。

最后,我们将通过 f作为匿名函数的参数,在某种代码启动中,它返回另一个匿名函数,它成为我们实际的事件监听器。问题不在于调用位于 reader.readAsDataURL(f); 的文件看到你使用 f作为参数首先在 reader.onload .

看到f范围高于 reader.onload事件,我们应该能够做到以下几点:

reader.onload = function(e) {
    // Render thumbnail.
    var span = document.createElement('span');
    span.innerHTML =
        ['<div id="wrap"><img id="image" class="thumb draggable" src="',
        e.target.result, '" title="', escape(f.name), // we use f, not theFile
        '" draggable="true" /></div>'].join('');
    document.getElementById('list').insertBefore(span, null);
};

在上面,我们删除了我们的函数 inception 并简单地引用了 f这已经在范围内。除非我们获得许可,否则此功能也不会执行,因此这应该可以解决您最初的用例问题。

关于javascript - 在 iOS6 上从相机上传图像的 HTML/JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15332743/

相关文章:

ios - 在ios中读取UTC并减去迄今为止的时间

javascript - 用于 JavaScript 的 Dlib

php - 如何将 PHP 插入到 jQuery 中?

javascript - Digger 游戏中的敌人需要自行移动,代码被破坏,我不知道为什么

javascript - Angular.js 仅加载一半时间

javascript - 使内容滑过 h1 视差。 z-index 不适用

ios - 如何将自定义字体添加到我的应用程序?

html - 如何分别滚动多个水平滚动容器?

javascript - 如何选择html元素对象

ios - CustomBadge 在角标(Badge)周围渲染 "grabage"