Firebase推送通知,使用cordova插件fcm构建PhoneGap
我需要在我正在开发的PhoneGap构建应用程序中实现推送通知 我没有找到太多关于使用新的谷歌服务Firebase Cloud Messaging(FCM)的文档,但因为它应该是我们现在必须使用的,所以我搜索了一个API,它可以让我的生活更轻松 我发现: 因此,我在config.xml中添加了:Firebase推送通知,使用cordova插件fcm构建PhoneGap,firebase,push-notification,cordova-plugins,phonegap-build,firebase-cloud-messaging,Firebase,Push Notification,Cordova Plugins,Phonegap Build,Firebase Cloud Messaging,我需要在我正在开发的PhoneGap构建应用程序中实现推送通知 我没有找到太多关于使用新的谷歌服务Firebase Cloud Messaging(FCM)的文档,但因为它应该是我们现在必须使用的,所以我搜索了一个API,它可以让我的生活更轻松 我发现: 因此,我在config.xml中添加了: <plugin name="cordova-plugin-fcm" source="npm" /> 我在根目录中创建了“project”文件夹并将文件放在那里,但这也不起作用 当前我的应用
<plugin name="cordova-plugin-fcm" source="npm" />
我在根目录中创建了“project”文件夹并将文件放在那里,但这也不起作用
当前我的应用程序文件夹看起来像:
\css
\img
\js
\res (icons and splashscreens)
index.html
config.xml
google-services.json
如果有人知道我要把那个文件放在哪里,或者有任何其他方法来实现这个,即使使用其他API,我也会非常感激。
我从未使用过Phonegap CLI,我一直在使用Phonegap Build。文件需要放在
www
文件夹旁边,问题是Phonegap Build只允许您上载所述文件夹的内容,因此您无法上载文件
幸运的是,你可以做一些事情;Build直接从npm安装插件,插件可以在整个项目中工作,因此您需要的是一个为您复制文件[google services.json
,GoogleService Info.plist
]的插件
大部分工作已经完成:
此插件复制项目根文件夹和Xcode项目中所需的FCM配置。它与伟大的cordova插件fcm插件结合使用
它不是为了这个目的而建造的,但它的工作非常出色
不过,这增加了复杂性;由于您无法上载插件(您只能在config.xml
中添加对它的引用),并且该插件需要您自己的应用程序配置文件,因此您必须:
我不知道你的情况,但我有一个付费帐户,所以我在自己的存储库中发布插件,并作为私人插件提交。这就是我的建议。Cordova不久前引入了
资源文件
标记,它也适用于Phonegap构建
您可以使用它而不是分叉插件来复制googleservices.json
和GoogleService Info.plist
文件
将标记放在项目的根目录中,并使用config.xml中的资源文件
标记,如下所示:
如果使用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
您还可以将其放入www
文件夹中,在我的示例中,在src
字段中的文件名之前添加www/
对于我来说,我必须进入.xcodeproj文件,将主界面从
MainViewController.xib
更改为CDVLaunchScreen.storyboard
重建成功了。我的应用程序是用Ionic构建的,我是在Ionic Creator中启动的。非常感谢,这非常有效!好吧,至少我能够编译它,现在我必须看看cordova插件fcm插件是否真的有效。非常感谢你!仅供参考,您还可以免费克隆项目并将其托管在bitbucket中的个人存储库中。然后用“谢谢”来回答这个问题。两个后续问题:1)为什么cordova插件fcm不包括复制功能?2) 有没有办法以同样的方式解决配置文件问题(从www文件夹中复制)?谢谢@Guy,这是一个非常好的技巧。也许值得一个完整的答案?
<platform name="android">
<resource-file src="google-services.json" target="google-services.json" />
</platform>
<platform name="ios">
<resource-file src="GoogleService-Info.plist" />
</platform>