首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cordova-plugin-fcm构建PhoneGap的Firebase推送通知

使用cordova-plugin-fcm构建PhoneGap的Firebase推送通知
EN

Stack Overflow用户
提问于 2016-09-29 02:12:46
回答 3查看 17.9K关注 0票数 9

我需要在我正在开发的PhoneGap构建应用程序中实现推送通知。

我没有找到太多关于使用新的Google服务Firebase Cloud Messaging (FCM)的文档,但因为它应该是我们现在必须使用的,所以我搜索了一个可以让我的生活变得更轻松的API。

我找到了:https://www.npmjs.com/package/cordova-plugin-firebase

所以我在我的config.xml中添加了:

代码语言:javascript
复制
<plugin name="cordova-plugin-fcm" source="npm" />

并将我从https://console.firebase.google.com/创建的google-services.json放在我要上传到Phonegap构建的文件夹的根目录中。

但我得到以下错误:

代码语言:javascript
复制
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文件夹看起来像:

代码语言:javascript
复制
\css
\img
\js
\res (icons and splashscreens)
index.html
config.xml
google-services.json

如果有人知道我要把这个文件放在哪里,或者有任何其他方法来实现,甚至使用其他API,我都会非常感激。我从来没有使用过Phonegap CLI,我一直在使用Phonegap Build。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-29 03:27:29

文件需要放在www文件夹旁边,问题是Phonegap Build只允许你上传文件夹的内容,所以你不能上传文件。

幸运的是,你可以做一些事情;Build直接从npm安装插件,插件可以在整个项目中工作,所以你需要的是一个为你复制文件google-services.jsonGoogleService-Info.plist的插件。

大部分工作已经完成:cordova-plugin-fcm-config

这个插件在项目根文件夹和Xcode项目中复制所需的FCM配置。它与优秀的cordova- plugin -fcm插件结合使用。

它不是为这个目的而构建的,但它工作得很好。

但是还有一个额外的复杂性;因为你不能上传插件(你只能在你的config.xml中添加对它的引用),并且这个插件需要你自己的应用程序配置文件,所以你必须:

将插件克隆/派生到您自己的repository.

  • Replace files.

  • Upload
  1. 中,并将其放在某个构建可以找到的位置。

上传到哪里?这可能有点棘手。基础架构是基于插件是通用的,并且可以在每个项目的xml中配置,所以npm是有意义的。但在这种情况下,您的插件将包含非常具体的数据到您的项目,所以在我看来,上传到npm会污染命名空间。

我不知道你怎么想,但我有一个付费帐户,所以我在我自己的存储库中发布插件,并以私有插件的形式提交。这是我推荐的。

票数 8
EN

Stack Overflow用户

发布于 2018-01-24 21:58:00

Cordova在一段时间前引入了resource-file标签,它也可以在Phonegap版本中工作。

您可以使用该插件而不是分支插件来复制google-services.jsonGoogleService-Info.plist文件

将放在项目的根目录中,并在config.xml中使用resource-file标记,如下所示:

如果使用cordova-android 7或更高版本:

代码语言:javascript
复制
<platform name="android">
  <resource-file src="google-services.json" target="app/google-services.json" />
</platform>

较旧的版本

代码语言:javascript
复制
<platform name="android">
  <resource-file src="google-services.json" target="google-services.json" />
</platform>

iOS

代码语言:javascript
复制
<platform name="ios">
  <resource-file src="GoogleService-Info.plist" />
</platform>

您也可以将其放在www文件夹中,在我的示例中,在src字段中的文件名之前添加www/

https://cordova.apache.org/docs/en/7.x/config_ref/index.html#resource-file

票数 9
EN

Stack Overflow用户

发布于 2019-09-22 10:36:53

对我来说,我必须进入.xcodeproj文件并将主界面从MainViewController.xib更改为CDVLaunchScreen.storyboard

重建,它起作用了。我的应用程序是用Ionic构建的,我是在Ionic Creator中启动的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39754798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档