我需要在我正在开发的PhoneGap构建应用程序中实现推送通知。
我没有找到太多关于使用新的Google服务Firebase Cloud Messaging (FCM)的文档,但因为它应该是我们现在必须使用的,所以我搜索了一个可以让我的生活变得更轻松的API。
我找到了: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构建的文件夹的根目录中。
但我得到以下错误:
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。
发布于 2016-09-29 03:27:29
文件需要放在www文件夹旁边,问题是Phonegap Build只允许你上传文件夹的内容,所以你不能上传文件。
幸运的是,你可以做一些事情;Build直接从npm安装插件,插件可以在整个项目中工作,所以你需要的是一个为你复制文件google-services.json,GoogleService-Info.plist的插件。
大部分工作已经完成:cordova-plugin-fcm-config。
这个插件在项目根文件夹和Xcode项目中复制所需的FCM配置。它与优秀的cordova- plugin -fcm插件结合使用。
它不是为这个目的而构建的,但它工作得很好。
但是还有一个额外的复杂性;因为你不能上传插件(你只能在你的config.xml中添加对它的引用),并且这个插件需要你自己的应用程序配置文件,所以你必须:
将插件克隆/派生到您自己的repository.
上传到哪里?这可能有点棘手。基础架构是基于插件是通用的,并且可以在每个项目的xml中配置,所以npm是有意义的。但在这种情况下,您的插件将包含非常具体的数据到您的项目,所以在我看来,上传到npm会污染命名空间。
我不知道你怎么想,但我有一个付费帐户,所以我在我自己的存储库中发布插件,并以私有插件的形式提交。这是我推荐的。
发布于 2018-01-24 21:58:00
Cordova在一段时间前引入了resource-file标签,它也可以在Phonegap版本中工作。
您可以使用该插件而不是分支插件来复制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文件夹中,在我的示例中,在src字段中的文件名之前添加www/。
https://cordova.apache.org/docs/en/7.x/config_ref/index.html#resource-file
发布于 2019-09-22 10:36:53
对我来说,我必须进入.xcodeproj文件并将主界面从MainViewController.xib更改为CDVLaunchScreen.storyboard
重建,它起作用了。我的应用程序是用Ionic构建的,我是在Ionic Creator中启动的。
https://stackoverflow.com/questions/39754798
复制相似问题