首页 文章

为什么$ cordova准备使用新的phonegap-cordova api(插件)

提问于
浏览
0

我是phonegap,cordova和android的新手 . 我在mac上,最近我安装了所有需求:

Phonegap 3.3.0-0.19.6 Cordova 3.3.1-0.4.1

得到Android SDK并在eclipse上运行没有问题 . 然后在eclipse上为phonegap成功创建一个新的Android应用程序,并在带有android的手机上运行 .

然后我用cordoba(终端)创建另一个应用程序,放置2个平台android和ios,我运行准备等..然后导入项目(android)到eclipse . 此时应用运行正常,所以我继续安装一些插件进行测试(通知和设备)

https://cordova.apache.org/docs/en/3.0.0/cordova_device_device.md.html#Device

当我用eclipse运行应用程序时,示例总会返回

未捕获的TypeError:无法调用未定义的方法'alert'

它和设备一样 . 因此,通过互联网查找我发现,如果我运行$ cordova准备工作,然后我运行命令,然后在eclipse上运行应用程序,它工作,但总是当我安装一个新的插件进行测试我必须运行cordova准备,并问题是index.html用示例hello world重写并且我松开了我的代码 .

在这里有任何帮助,我做得好吗?,如何安装这些插件并进行测试,而不必一直运行准备 . (请想一想日食,我不会一直使用终端)

3 回答

  • 1

    我有同样的问题,其他帖子的建议对我不起作用 .

    尽管官方文档和其他帖子,我通过稍微改变步骤解决了这个问题 . 如果我在添加平台之前添加所有文件和核心插件,那么在我打开项目之前,添加平台会将这些内容带到新的文件夹结构 AND only build once from the command line 中 .

    如果我需要添加任何东西,我会再做一次 . 虽然我可以编辑www文件而无需再次通过该过程, I do not expect the root www to perpetuate the platform www's . 我只是将它自己复制到所有的www文件夹中 . 它不应该是这种方式,但我认为这是一个记录良好的错误,多个命令行构建,现在,这就是我的工作修复 .

  • 1

    建议的方法是在项目的根www文件夹中编辑html / js / css ...,而不是在platfotms / xxx文件夹中 .

    原因是,如果您有多个平台,则只需在一个位置进行修改即可将 cordova preparecordova buildphonegap build 传播到所有平台并更新插件 .

    如果你只有android平台,并希望能够直接在eclipse中为platforms / android / assets / www文件夹更改代码,我建议你创建一个shell脚本

    • 将projectroot / platforms / android / assets / www的所有内容复制到projectroot / www

    • 运行cordova准备android

    然后,您只需在添加新插件后运行脚本,而不是运行 cordova prepare android .

    编辑

    我认为可能有更好的方法解决您的问题 .

    您应该能够使用plugman来安装插件而不是cordova .

    首先你需要安装plugman cli: npm install -g plugman

    然后使用安装插件

    plugman -d --platform android --project projectname --plugin nameorurlofplugin
    

    http://cordova.apache.org/docs/en/edge/plugin_ref_plugman.md.html

  • 0

    我也有这些问题 .

    我现在使用的一种方法是:

    编辑平台文件夹中的 index.html ,即 platform/iOS/appname/www 等 . 然后使用 cordova plugin add 使用普通终端方式添加插件,但总是使用Xcode for iOS和eclipse运行项目,而不是从终端运行,因为这样你就会丢失代码 .

    根据我的经验,当你使用 .xcodeproj 或说android项目时,内部的 www 被使用,如果你从终端使用 cordova run ios ,外面的 www 将覆盖平台文件夹中的 www .

    如果你得到xcode错误说找不到那么插件文件只是将它们移动到错误说xcode期望它们进入的路径 .

相关问题