![](/img/trans.png)
[英]Parse push notifications not received by Unity Android app in background
[英]Push notifications behaviour while app running in background (Parse/Unity/Android)
我一直在嘗試Parse的集成教程和示例,但是當應用程序在后台運行時,我無法弄清楚如何使推送通知顯示在任務欄中。
但是,在關閉應用程序時確實會出現通知! 此外,當處於前台時,推送通知事件會正確觸發。
總結起來,推送通知可以很好地工作,除非在后台運行。
通知在日志中顯示如下:
07-02 04:43:06.979:I / GCM(22111):GCM消息com.parse.parseunitypushsample 0:1435804985959681%368c544ef9fd7ecd
07-02 04:43:07.033:W / GCM-DMM(22111):廣播意圖回調:result = CANCELLED forIntent {act = com.google.android.c2dm.intent.RECEIVE pkg = com.parse.parseunitypushsample(具有其他功能) )}
07-02 04:43:07.041:I / ParsePushService(16145):收到推送通知。 有效負載:{“ alert”:“來自Parse的測試推送!”,“ push_hash”:“ 2bf06f5e2a92eab2fcb855fc1117fa33”}
07-02 04:43:07.041:I / ParsePushService(16145):在應用程序前台時處理推送通知。
請注意,即使其他某個應用程序處於前台,它也會顯示“ foregrounded”。 這讓我有些困擾,好像Parse決定不顯示該通知,因為它斷定該通知處於前台。 只是我的猜測。
我正在使用:
提供的清單:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.parse.parseunitypushsample" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="10" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <permission android:protectionLevel="signature" android:name="com.parse.parseunitypushsample.permission.C2D_MESSAGE" /> <uses-permission android:name="com.parse.parseunitypushsample.permission.C2D_MESSAGE" /> <application android:label="@string/app_name" android:icon="@drawable/app_icon"> <!-- Added "com.unity3d.player" below to avoid crash --> <activity android:name="com.unity3d.player.UnityPlayerActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="com.parse.ParsePushBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND"> <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> <category android:name="com.parse.parseunitypushsample" /> </intent-filter> </receiver> <service android:name="com.parse.ParsePushService" /> </application> </manifest>
我只是在構建教程項目,但是它需要Unity升級,並需要運行一些小修復。 否則,它很干凈,似乎可以正確接收推送通知,但是在后台運行時不顯示它們。
這是預期的行為,還是我做錯了什么?
謝謝 :)
如果知道了,那您就快到了! 我認為您需要將此腳本添加到您的一個GameObjects中:
using UnityEngine;
using System.Collections;
using Parse;
public class ParsePushRegistration : MonoBehaviour {
// Use this for initialization
void Start () {
#if UNITY_ANDROID
ParsePush.ParsePushNotificationReceived += (sender, args) => {
AndroidJavaClass parseUnityHelper = new AndroidJavaClass ("com.parse.ParseUnityHelper");
AndroidJavaClass unityPlayer = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject> ("com.unity3d.player.UnityPlayerNativeActivity");
// Call default behavior.
parseUnityHelper.CallStatic ("handleParsePushNotificationReceived", currentActivity, args.StringPayload);
};
#endif
}
}
檢查並跟蹤該問題,這可能對您有用: 解析Unity Push Sample不起作用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.