我需要在我正在开发的PhoneGap Build应用中实现推送通知。
我没有找到关于使用新的Google服务Firebase云消息传递(FCM)的文档,但由于它应该是我们现在必须使用的内容,因此我搜索了一个可以让我的生活更轻松的API。 / p>
我找到了:https://www.npmjs.com/package/cordova-plugin-firebase
所以我添加到我的config.xml:
<plugin name="cordova-plugin-fcm" source="npm" />
将我从https://console.firebase.google.com/创建的google-services.json放在我上传到Phonegap Build的文件夹的根目录中。
但是我收到以下错误:
Execution failed for task ':processReleaseGoogleServices'.
> File google-services.json is missing. The Google Services Plugin cannot function without it.
Searched Location:
/project/src/release/google-services.json
/project/google-services.json
我在根目录中创建了“project”文件夹并将文件放在那里,但这两个文件都不起作用。
目前我的app文件夹如下所示:
\css
\img
\js
\res (icons and splashscreens)
index.html
config.xml
google-services.json
如果有人知道我要放置该文件的位置,或者使用其他API有任何其他方式来实现它,我会非常感激。 我从未使用过Phonegap CLI,我一直在使用Phonegap Build。
答案 0 :(得分:9)
Cordova不久前推出了resource-file
标签,它也适用于Phonegap Build。
您可以使用它而不是分叉插件来复制google-services.json
和GoogleService-Info.plist
文件
放入项目的根目录,并使用config.xml中的resource-file
标记,如下所示:
如果使用cordova-android 7或更新版本:
<platform name="android">
<resource-file src="google-services.json" target="app/google-services.json" />
</platform>
旧版本
<platform name="android">
<resource-file src="google-services.json" target="google-services.json" />
</platform>
的iOS
<platform name="ios">
<resource-file src="GoogleService-Info.plist" />
</platform>
您也可以将其放在www
文件夹中,在我的示例中,在www/
字段中的文件名之前添加src
。
https://cordova.apache.org/docs/en/7.x/config_ref/index.html#resource-file
答案 1 :(得分:8)
文件需要与www
文件夹一起使用,问题是Phonegap Build只允许您上传所述文件夹的内容,因此您无法上传文件。
幸运的是,你可以做些什么; Build直接从npm安装插件,插件可以考虑整个项目,所以你需要的是一个为你复制文件[google-services.json
,GoogleService-Info.plist
]的插件。
大部分工作已经完成:cordova-plugin-fcm-config。
此插件在项目根文件夹和Xcode项目中复制所需的FCM配置。它与伟大的cordova-plugin-fcm插件结合使用。
它并没有为此目的而建造,但效果非常好。
虽然增加了复杂性;因为您无法上传插件(您只能在config.xml
中添加对该插件的引用),并且此插件需要您自己的应用配置文件,您必须:
你在哪里上传它?这可能很棘手。基础架构是基于插件用于一般目的的想法,并且可以在每个项目xml中配置,因此npm是有意义的。但在这种情况下,您的插件将包含非常具体的数据到您的项目,因此上传到npm会污染我认为的命名空间。
我不了解您,但我有一个付费帐户,因此我将该插件发布到我自己的存储库中并作为私有插件提交。这就是我的建议。
答案 2 :(得分:0)
对我来说,我必须进入.xcodeproj文件,并将主界面从MainViewController.xib
更改为CDVLaunchScreen.storyboard
重建并成功。我的应用是使用Ionic构建的,我是在Ionic Creator中启动的。