android - iOS 和 Android 的 HTML 5 文件输入 [Cordova/Phonegap]

标签 android ios html cordova

在 PhoneGap 应用程序中,我尝试使用 HTML5 使用相机 input像这样的标签。

  • 使用 CLI 创建新项目
  • 添加iOS和Android平台
  • 添加相机插件
  • 为两种设备构建
  • 在两台设备上运行(实际设备 iPhone 5 和 iOS 7.1.2 和 Android 4.4.2 (Samsung Note))

  • 以下是我尝试执行的代码行
    <input id="imageHolder" type="file" accept="image/*" capture />
    

    它适用于 iPhone,但不适用于 Android。我错过了什么?或者Android不支持这个?
    在Android中点击该字段后没有任何 react ,而在iPhone中它的行为如下所示
    File input working in iOS

    最佳答案

    我看到这是一个老问题,但答案不是使用 HTML,而是使用 JavaScript 和 cordova 插件。
    我用过这个plugin
    很容易使用。
    例子:

    if (device.platform == "Android") { //Here we check to see what OS is used. input with type file is supported on iOS, but not Android. So use plugin for Android
        fileStorage.open(function (uri) {
            if (callback) {
                callback(uri);
            }
            return uri;
        }, function (ex) {
            throw ex;
        });
    } else {
        var file = document.createElement("input");
        file.type = "file";
        file.accept = ".pdf";
        file.style.display = "none";
    
        document.body.appendChild(file);
        file.click();
    
        file.onchange = function (f) {
            console.log(f);
    
            console.log(file.files);
    
            var reader = new FileReader()
    
            reader.readAsDataURL(file.files[0]);
    
            reader.onloadend = function () {
                if (callback) {
                    callback(reader.result);
                }
    
                return reader.result;
            }
    
            document.body.removeChild(file);
        }
    }
    

    关于android - iOS 和 Android 的 HTML 5 文件输入 [Cordova/Phonegap],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27166192/

    相关文章:

    java - 使用 Dagger 2 进行方法注入(inject)

    android - 何时使用 executePendingBindings() 何时不需要?

    android - Flutter:使用 Sliver 小部件时如何在滚动时隐藏 BottomAppBar?

    ios - 在另一个类中滑动手势识别器

    html - 标签垂直对齐

    javascript - map API 不适用于 HTML 中的 Windows Phone

    android - 如何在 C/C++ 文件中检测 Android NDK 的编译?

    iphone - 当我们在 iOS 中使用 delegate 和 Call back 时?

    ios - 如何将 UIButton 带到 Mapbox View 的前面

    javascript - 如何在 HTML5 Canvas 上进行正确的边界检查?