5

我正在开发适用于 Android 的移动应用程序,它使用 Dave Johnson 的 Facebook Connect 插件 ( https://github.com/davejohnson/phoneg...)、Camera和 FileTransfer。基本上,用户点击一个按钮来拍照(手机相机启动,用户拍照),然后这张照片被上传到服务器。问题是第一次一切都很好,但是当我再次按下按钮拍摄第二张照片时,照片无法上传到服务器,返回的错误来自 FileTransfer - 错误代码 3。

我设置了 options.chunkedMode = false; 这没有帮助。

我知道这是一个连接错误,我在 /res/xml/cordova.xml 文件中将要上传图片的域列入白名单。我在网上搜索了很多以找到一个有效的解决方案,还有其他人抱怨这个,但没有提供有效的解决方案。我正在使用 Cordova 1.8.1(我还使用 1.8.0, 1.7.0, 1.6.1, 1.5.0 进行了测试)。我使用较新版本的 Phonegap 进行了测试,例如 1.9.0,但无法构建项目 - facebook 插件不适用于此版本的 Phonegap。我正在使用 Emulator Android 4.1 (API 16) 进行测试。在查看详细日志时,我尝试了不同的方法使其工作,但我无法使其工作。我正在寻找解决方案,因为它非常重要,请帮我解决这个问题。预先感谢您的回答。

4

2 回答 2

0

您可以尝试以下任一方法:

在您的 AndroidManifest.xml 文件的标签中设置 android:debuggable="true"。

设置而不是像评论部分中建议的那样仅设置 *,如下所示:

<!-- <access origin="https://example.com" /> allow any secure requests to example.com -->
<!-- <access origin="https://example.com" subdomains="true" /> such as above, but including subdomains, such as www -->
<!-- <access origin=".*"/> Allow all domains, suggested development use only -->

从; https://stackoverflow.com/a/12011782/610880

于 2012-09-27T20:03:28.300 回答
0

这是 phonegap 库中的一个未修复的错误,因为没有错误修复,我必须通过我的工作来解决它(基本上在每次备用故障时重新上传):

ft.upload(path,
          encodeURI("http://yourdomain.com/upload.php"),
            function(result) {
                alert("Uploaded");
            },
            function(error) {
        ft.upload(path,
        encodeURI("http://yourdomain.com/upload.php"),
        function(result) {
                alert("Uploaded");                  
        },
        function(error) {
            alert("Error uploading image");
        },
        { fileName: name, fileKey: "file", mimeType: "image/jpeg", chunkedMode: false }, true);     
                },
                { fileName: name, fileKey: "file", mimeType: "image/jpeg", chunkedMode: false }, true);
于 2013-09-06T03:45:56.967 回答