Cordova在Chrome中的插件文件:未定义cordova

12

我在我的Ionic应用程序中使用cordova-plugin-file下载图像并保存到本地。

当我在模拟器或iPhone上运行时,没有错误,但是当我在Chrome中测试时,当我尝试访问cordova.file.dataDirectory时,它会显示“cordova未定义”。

我该如何在Chrome中运行cordova-plugin-file?


1
cordova有一个“browser”平台,可以让您在浏览器中测试某些功能。 - Glorfindel
请查看这篇博客 - 我自己没有使用过,所以无法再帮助你了。 - Glorfindel
@Sato:你解决了这个问题吗? - LeftyX
不,我尝试过你的方法,它没有起作用。 - Sato
你不能在浏览器中运行该插件。不过你可以消除这个错误。 - LeftyX
显示剩余2条评论
2个回答

37

Cordova只能在设备上使用,无法在浏览器中使用。

在您的index.html文件中应该有这个脚本引用:

<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>

正如注释所说,此脚本在开发过程中不可用,它将在构建过程中被替换。

您可以自己尝试一下:

cordova platform add android

那么

cordova build

你应该在 platforms\android\assets\www 目录下找到2个 JavaScript 文件:cordova.jscordova_plugins.js

另一种选择是将浏览器作为平台添加:

cordova platform add browser

然后运行它:

cordova run browser

但你可能会遇到一些麻烦。


4
当文件不被浏览器支持时,如何进行开发? - El Dude
@ArturKeyan:很高兴我能帮到你。干杯。 - LeftyX
你在哪里运行 "cordova platform add browser" 命令? - who-aditya-nawandar

0

你可以轻松地将cordova.js复制到你的根目录进行测试。该文件位于以下目录:

cordova-project/platforms/ios/platform_www

你可以轻松地将其复制过去。如果这样做,cordova对象就可用并且可以在你的代码中访问。

cordova.file.dataDirectory

一个好的调试和测试 Cordova 应用程序的方法是使用 Cordova 浏览器插件,结合安装 Phonegap 来获取访问权限。
phonegap serve browser 

命令。这样,您可以方便地在计算机上测试应用程序,而不必将其发送到设备。需要指出的是,上述cordova.file.dataDirectory在计算机上不可用。一些插件为浏览器平台提供代理,您也可以在浏览器中测试它们。

对我来说,phonegap serve browser的好处是当您编辑代码并保存后,重新加载浏览器即可反映更改。

我必须提到另一个使代码更改反映工作的要点。您必须在Cordova项目根文件夹内创建一个 .cordova 目录。然后,您必须添加一个 config.json 文件,并填入以下内容:

{
"lib": {
    "www": {
        "id": "com.phonegap.helloworld",
        "version": "3.5.0",
        "uri": "https://github.com/phonegap/phonegap-app-hello-world/archive/3.5.0.tar.gz"
    }
}
}

正如SO中的以下帖子所述: 在Cordova项目中让PhoneGap服务器工作


我刚意识到复制cordova.js可能是无意义的。当然,你可以访问已定义的属性(如我提到的dataDirectory属性),但这没有任何好处,因为(正如我也写过的那样)该属性在桌面上未定义。我的考虑只是为了测试File API,而你不需要Cordova对象来完成。尽管如此,我不会删除我的条目,因为关于调试Cordova应用程序的最后一部分可能对某些人有帮助,因为它是必要步骤的集合。 - Torsten Barthel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接