在 Visual Studio 中导入工作的科尔多瓦项目给出错误
Posted
技术标签:
【中文标题】在 Visual Studio 中导入工作的科尔多瓦项目给出错误【英文标题】:Import working cordova project in Visual Studio giving errors 【发布时间】:2016-04-04 11:54:30 【问题描述】:TL;DR
当我在 Visual Studio 中导入现有的 Cordova 项目并在浏览器中运行应用程序(通过 Ripple)时,我会收到以下错误:
PushPlugin.register - We seem to be missing some stuff :(
完整解释: 首先为这篇长篇道歉,我想包含尽可能多的信息! 我有一个使用 Ionic、Cordova 和 Ripple 运行的 Cordova 应用程序。我使用 Ripple 在浏览器中模拟移动设备。
当我在 Sublime Text Editor 中测试并使用 ripple emulate
运行时,所有功能都可以完美运行。
当我尝试在 Visual Studio 中导入项目时,它运行不顺畅。
我将分步解释我做了什么,因为也许我在某个特定步骤中遗漏了一些东西。
步骤 1
这是我在 Sublime 项目(不是 Visual Studio)中的 config.xml 中的代码。
<gap:plugin name="cordova-plugin-file" source="npm" />
<gap:plugin name="cordova-plugin-file-transfer" source="npm" />
<gap:plugin name="cordova-plugin-device" source="npm" />
<gap:plugin name="cordova-plugin-inappbrowser" source="npm" />
<gap:plugin name="com.phonegap.plugins.pushplugin" version="2.4.0" />
这是 Visual Studio 中的 config.xml。注意com.phonegap.plugins.PushPlugin
。这是 github 上的一个插件,但我只能找到指向 2.5
版本的直接链接。我设法将 zip 下载到 2.4
版本,所以我通过这种方式添加了它。
<plugin name="cordova-plugin-file" version="4.1.1" />
<plugin name="cordova-plugin-file-transfer" version="1.5.0" />
<plugin name="cordova-plugin-device" version="1.1.1" />
<plugin name="cordova-plugin-inappbrowser" version="1.2.1" />
<plugin name="com.phonegap.plugins.PushPlugin" version="2.4.0" src="D:\Dev\A\VisualStudioApp\VisualStudioApp\local-plugins\PushPlugin-2.4.0" />
<plugin name="cordova-plugin-websql" version="0.0.10" />
第二步
这是我的 Sublime 文本编辑器中的文件夹结构:
<DIR> fonts
<DIR> icons
<DIR> images
<DIR> iscroll
<DIR> jquery-mobile
<DIR> js
- <DIR> app
- <DIR> lib
<DIR> platforms
<DIR> res
<DIR> slickgrid
<DIR> styles
<DIR> testdata
27 295 MobileProject.jsproj
588 MobileProject.jsproj.user
4 115 config.xml
999 config.xml.bak
938 config.xml.vs
222 115 cordova.android.js
209 664 cordova.ios.js
60 180 cordova.js
2 cordova_plugins.js
1 142 footer.html
313 header.html
212 index.html
67 607 main.html
这是 Visual Studio 中的文件夹结构:
<DIR> bin
<DIR> bld
<DIR> local-plugins
<DIR> merges
<DIR> platforms
<DIR> plugins
<DIR> res
<DIR> testdata
<DIR> www
- <DIR> fonts
- <DIR> icons
- <DIR> images
- <DIR> iscroll
- <DIR> jquery-mobile
- <DIR> js
- <DIR> app
- <DIR> lib
- <DIR> slickgrid
- <DIR> styles
- 1 142 footer.html
- 313 header.html
- 212 index.html
- 67 607 main.html
131 .gitignore
75 bower.json
225 build.json
6 686 VisualStudioApp.jsproj
309 VisualStudioApp.jsproj.user
7 146 config.xml
122 package.json
124 250 Project_Readme.html
34 taco.json
第三步
在 Android 上运行应用程序
这是我的控制台日志给我的:GET http://localhost:4400/config.xml 404 (Not Found) ripple.js:51
No Content-Security-Policy meta tag found. Please add one when using the cordova-plugin-whitelist plugin. whitelist.js:24
旁注
当我添加插件,但不将代码从 Sublime 复制到 Visual Studio 时,不会显示任何错误。 当我在 Windows-AnyCPU(本地计算机)上运行应用程序时,应用程序将启动并几乎立即关闭。 在调试模式下,我在运行开始时遇到了异常:SCRIPT5022: Unhandled exception at line 59, column 13 in ms-appx://io.cordova.myapp4a33c5/www/cordova.js
0x800a139e - Runtime-fout javascript: module cordova/windows8/commandProxy not found
cordova.js (59,13)
这是什么cordova/windows8/commandProxy
?
【问题讨论】:
【参考方案1】:(我假设您安装了正确版本的 Node)
您拥有什么版本的 Visual Studio?我正在使用 Visual Studio 2015,这是我导入项目所采取的步骤。
-
将其解压缩到我希望我的项目所在的位置。
在 Visual Studio 菜单文件 --> 打开 --> 项目/解决方案并选择所有文件所在的文件夹。
您将在解决方案下方看到向上箭头图标显示“依赖项”。展开它,您将看到 2 个文件夹 Bower 和 NPM。右键单击并选择还原包。这可能需要一些时间。
之后,尝试使用命令版本并使用“ionic serve”。这应该把它带到一个网页上。
对于您的 Cordova 代理问题,请查看以下链接 cordova windows error: “cordova/windows8/commandProxy” not found
希望这会有所帮助。
【讨论】:
【参考方案2】:看看我的回答here。虽然不是完全相同的错误信息,但问题是一样的。
Ripple 不是对真实设备的完整模拟,不支持许多插件,例如您正在使用的 PushPlugin。尝试在真实设备或模拟器上运行您的应用来修复错误。
【讨论】:
那里的有效点。问题是我想制作一个 Windows 应用程序,我通常应该能够在 Visual Studio 中运行它。但我得到的只是 Cordova 的加载屏幕,然后应用程序立即关闭。 好的,您在哪个 Windows 版本上运行?您是否已配置 config.xml 以匹配您的 Windows 版本?就像 Windows 10 的<preference name="windows-target-version" value="10.0" />
...以上是关于在 Visual Studio 中导入工作的科尔多瓦项目给出错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Blend for Visual Studio 2013 中导入为矢量图形
如何在android studio中导入react native项目