cordova inappbrowser和输入文件

时间:2016-06-05 14:01:13

标签: android cordova file-upload

我有一个iOS和Android应用程序,我在我的应用程序中加载了一个外部网站(这个外部网站也是我的)。 我的问题是这个网站有一个文件上传功能,这个功能在Android上不起作用(适用于iOS)。 我在Android上看到这种行为是正常的,但有什么方法可以使它工作,或者它绝对不是一个选项? 谢谢

编辑1

我尝试使用这样的简单页面(在AWS上托管)创建一个新的应用程序:

<html>
<head>
    <title>Upload Test !</title>
</head>
<body>
    <div>Upload Test</div>
    <div>
        <input type="file" id="imgFile" name="files[]" accept="image/x-png, image/gif, image/jpeg">
    </div>      
</body>

我在我的Cordova项目中的生成的index.html中添加了这个脚本。

    <script type="text/javascript">
        document.addEventListener("deviceready", function(event) {
            console.log('TEST CONSOLE LOG !');
            var url = 'https://s3-eu-west-1.amazonaws.com/***/file-upload.html';
            ref = window.open(url, "_blank", "location=no,toolbar=no,zoom=no,hidden=yes");

            ref.addEventListener('loadstop', function () {
              ref.show();
            });
            ref.addEventListener('loaderror', function () {
              ref.close();
              ref = undefined;
            });
        }, false);
    </script>

它对我的nexus 5(android M)不起作用。

2 个答案:

答案 0 :(得分:0)

Android和iOS都存在一个问题,当在inappbrowser中单击这样的文件输入标记时,会阻止文件上传:

<input type="file">

对于这两种方法都有一些修复方法,我已将其整合到一个位置,以便其他任何人面对此问题。您应该能够修改config.xml文件以使用它:

<plugin spec="https://github.com/jverlee/cordova-plugin-inappbrowser-camera.git" version="1.1.0" source="git" />

而不是默认的inappbrowser插件。

更多细节可以在这里找到: https://github.com/jverlee/cordova-plugin-inappbrowser-camera

答案 1 :(得分:0)

@Verl的代码非常好!但是,它不能通过他的安装指南安装......所以这是我的:

cordova plugin remove cordova-plugin-inappbrowser-camera
cordova plugin add https://github.com/jverlee/cordova-plugin-inappbrowser-camera.git

顺便说一句,如果我按照他的指南,我只会得到: 错误:无法读取属性&#39;变量&#39;未定义的