在Visual Studio中导入工作cordova项目会导致错误

时间:2016-04-04 11:54:30

标签: visual-studio cordova

TL; DR
当我在Visual Studio中导入现有的Cordova项目并在浏览器中运行应用程序时(通过Ripple),我将收到以下错误: PushPlugin.register - We seem to be missing some stuff :(

完整说明:
首先为长篇文章道歉,我想尽可能多地包含信息!
我有一个工作的Cordova应用程序,我使用Ionic,Cordova和Ripple运行。我使用Ripple在浏览器中模拟移动设备。

当我在Sublime Text Editor中测试它并使用ripple emulate运行时,所有功能都能正常工作 当我尝试在Visual Studio中导入项目时,它运行不顺畅。

我会解释我在步骤中所做的事情,因为也许我错过了某个特定步骤。

第1步

这是我的Sublime项目中的config.xml中的代码(不是Visual Studio)。

<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" />

第2步

这是Sublime Text Editor中的文件夹结构:

<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

第3步

在Android上运行应用程序 Run application

这是我的控制台日志给我的:
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 Result

图片的标题说明

  • 当我添加插件但不将代码从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是什么?

2 个答案:

答案 0 :(得分:0)

(我假设您安装了正确的Node版本)

您拥有哪个版本的Visual Studio?我正在使用Visual Studio 2015,以下是我导入项目的步骤。

  1. 将其解压缩到我想要我的项目的地方。
  2. 在Visual Studio菜单文件 - &gt;打开 - &gt;项目/解决方案并选择我的文件夹,其中包含所有文件。
  3. 您将看到并且向上箭头图标表示您的解决方案下的依赖关系。展开它,你会看到2个文件夹Bower和NPM。右键单击并选择还原包。这可能需要一些时间。
  4. 之后,尝试使用命令版本并使用&#34; ionic serve&#34;。这应该把它带到一个网页上。

    对于您的Cordova代理问题,请检查以下链接 cordova windows error: “cordova/windows8/commandProxy” not found

    希望这会有所帮助。

答案 1 :(得分:0)

看看我的回答here。虽然它不是完全相同的错误信息,但问题是一样的。

Ripple不是真实设备的完整模拟,不支持许多插件,例如您正在使用的PushPlugin。尝试在真实设备或模拟器上运行您的应用以修复错误。