我正在尝试添加Google FCM推送通知功能到Unity项目。我很惊讶没有关于Unity的Google FCM的资源。只有旧的Google GCM资源。下面是我的一步一步的进度。
- 创建Android Studio项目并注册到FCM控制台项目
- 将
google-service.json
添加到'/app'并配置build。gradle(项目和模块) - 根据FCM文档 中的示例添加MyFirebaseInstanceIDService, MyFirebaseMessagingService java类和onTokenRefresh, sendRegistrationToServer, onmessagerreceived , sendNotification方法
- 为类添加服务到AndroidManifest.xml
之后,我在手机上测试了Android Studio项目,FCM主机推送通知效果不错。然后,我开始为Unity配置Android Studio项目。 - 在构建中将'application'更改为'library'。gradle (module)和添加deleteOldJar, exportJar for
AndroidPlugin.jar
- 添加Unity的
classes.jar
到Android Studio库和模块设置 - 删除'android:icon…', 'android:theme… AndroidManifest.xml
- 导出jar并添加
AndroidPlugin.jar
,AndroidManifest.xml
到Unity中的'Plugins/Android'
然后,我在移动设备上测试了Unity项目。它的构建毫无例外,但FCM控制台推送通知不起作用。(我制作了测试日志,以确认Android Studio库与Unity的连接良好,日志运行良好)
也许,有一些东西要添加到'Plugins/Android'除了AndroidManifest.xml
和AndroidPlugin.jar
像下面的参考。
Google firebase分析插件unity - StackOverflow
http://joxi.ru/Q2KeQD7C3zdYrj
我在 onessignal 中使用了Unity SDK。这是一个非常简单,容易,很酷的SDK推送通知。
下面的参考链接。
https://onesignal.com/
这种方法是不可行的。
Jar文件不包含资源,因此,json文件将从Jar构建中丢失。或者,aar文件,理论上包含资源,被Unity3D解释为纯插件,忽略资源或至少一些,特别是在使用gradle时。但是Unity在这方面做得越来越好。
试试https://firebase.google.com/docs/unity/setup。它是新的,我已经得到了工作的样本项目。
只是补充一下:Unity3D的新插件Firebase工作起来很有魅力。像纯系统尝试通知这样的用例不需要在客户端进行一行额外的编程。数据消息也很容易实现。