我是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 回答
我有同样的问题,其他帖子的建议对我不起作用 .
尽管官方文档和其他帖子,我通过稍微改变步骤解决了这个问题 . 如果我在添加平台之前添加所有文件和核心插件,那么在我打开项目之前,添加平台会将这些内容带到新的文件夹结构 AND only build once from the command line 中 .
如果我需要添加任何东西,我会再做一次 . 虽然我可以编辑www文件而无需再次通过该过程, I do not expect the root www to perpetuate the platform www's . 我只是将它自己复制到所有的www文件夹中 . 它不应该是这种方式,但我认为这是一个记录良好的错误,多个命令行构建,现在,这就是我的工作修复 .
建议的方法是在项目的根www文件夹中编辑html / js / css ...,而不是在platfotms / xxx文件夹中 .
原因是,如果您有多个平台,则只需在一个位置进行修改即可将
cordova prepare
或cordova build
或phonegap 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
然后使用安装插件
http://cordova.apache.org/docs/en/edge/plugin_ref_plugman.md.html
我也有这些问题 .
我现在使用的一种方法是:
编辑平台文件夹中的
index.html
,即platform/iOS/appname/www
等 . 然后使用cordova plugin add
使用普通终端方式添加插件,但总是使用Xcode for iOS和eclipse运行项目,而不是从终端运行,因为这样你就会丢失代码 .根据我的经验,当你使用
.xcodeproj
或说android项目时,内部的www
被使用,如果你从终端使用cordova run ios
,外面的www
将覆盖平台文件夹中的www
.如果你得到xcode错误说找不到那么插件文件只是将它们移动到错误说xcode期望它们进入的路径 .