Я использую parse 1.13.0 в nodechef.com Я попытался настроить приложение для отправки уведомлений, но у меня возникли проблемы.Push-уведомление из приложения, использующего синтаксический анализ
Это мой Manifest:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my.path" >
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="com.my.path.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.my.path.permission.C2D_MESSAGE" />
<application
android:name=".MainApplication"
android:allowBackup="true"
android:fullBackupContent="true"
android:icon="@drawable/logo"
android:label="@string/app_name"
android:theme="@style/hsfTheme">
<meta-data
android:name="com.parse.APPLICATION_ID"
android:value="@string/parse_app_id" />
<meta-data
android:name="com.parse.CLIENT_KEY"
android:value="@string/parse_client_key" />
<meta-data
android:name="com.parse.push.notification_icon"
android:resource="@drawable/logo" />
<service android:name="com.parse.PushService" />
<receiver android:name="com.parse.ParseBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
<receiver android:name="com.parse.GcmBroadcastReceiver"
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.my.path" />
</intent-filter>
</receiver>
<!-- activity main. -->
<activity
android:name=".A0"
android:configChanges="keyboardHidden|screenLayout|orientation"
android:immersive="true"
android:screenOrientation="portrait"
android:theme="@style/hsfTheme.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".A1" />
<activity android:name=".A2" />
<activity android:name=".A3" />
<activity android:name=".utils.A4" />
<!-- Include the AdActivity configChanges and theme. -->
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
</application>
в моем классе приложений у меня есть: ParseInstallation.getCurrentInstallation() saveInBackground();.
- DeviceToken пуст в классе _Installation
- Нажмите не работает
Все, что я нужно отправить уведомление толчок от моего приложения, в некоторых действий я хотел бы предупредить всех пользователей или некоторых пользователей с использованием каналов установки , Не волнует, буду ли я использовать «синтаксический разбор» или gcm, просто нужно просто отправить отправку push-уведомлений из приложения.
EDIT Push from parse-dashboard работает сейчас, но я не могу отправить push-уведомление от клиента. Я попробовал нажать и получил «unauthorized: enable master key». Так что мне нужно делать?
EDIT 2 Я создал код облако, но его внешний вид не работает значения получить от Request.Params:
Parse.Cloud.define("sendPush", function(request,response) {
var _locale = "en-US";//request.params.locale;
var _message = "test";//request.params.message;
var query = new Parse.Query(Parse.Installation);
query.equalTo("localeIdentifier", _locale);
Parse.Push.send({
data: {
alert: _message,
badge: "Increment",
sound: "default"
},
where: query
}, {
useMasterKey: true
})
.then(function() {
response.success("Push Sent!");
}, function(error) {
response.error("Error while trying to send push " + error.message);
});
});
EDIT 3
HashMap<String,String> map = new HashMap<String, String>();
map.put("locale","en-US");
map.put("message","Text added");
ParseCloud.callFunctionInBackground("sendPush",map, new FunctionCallback<Object>() {
@Override
public void done(Object object, ParseException e) {
// toast done
}
});
В чем проблема? можете ли вы поделиться другим кодом? –
@RanHassid Я добавил дополнительную информацию о проблеме. –
вы используете parse.com или parse-server? –