我有一个应用程序,我想在其中使用解析通知。 我也有一个正确的示例解析推送通知。我怎么能在哪里用它推它呢? 我的解析应用程序有以下代码:
public class ParseApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Add your initialization code here
Parse.initialize(this, " ", " ");
ParseUser.enableAutomaticUser();
ParseACL defaultACL = new ParseACL();
// If you would like all objects to be private by default, remove this line.
defaultACL.setPublicReadAccess(true);
ParseACL.setDefaultACL(defaultACL, true);
}
还有:
public class ParseStarterProjectActivity extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// To track statistics around application
ParseAnalytics.trackAppOpened(getIntent());
// inform the Parse Cloud that it is ready for notifications
PushService.setDefaultPushCallback(this, ParseStarterProjectActivity.class);
ParseInstallation.getCurrentInstallation().saveInBackground();
}
它工作正常,但我不知道我可以在这个代码中添加到我的主应用程序中。
答案 0 :(得分:0)
目前,由于您没有使用频道或高级定位,您可以将代码放在onCreate方法中,推送通知也可以。通过这种方式,您可以从解析网站发送推送。
如果您想将推送发送到设备的子集,您可以使用频道(您可以让用户订阅/取消订阅和发送推送)或高级定位。通过这些方式,无论何时发生事件,您都可以通过解析网站或应用程序本身向所需设备发送推送。
答案 1 :(得分:0)
您需要编写一个自定义接收器,它可以读取您的推送通知,从而采取相应的行动。
您可以按照以下步骤在应用程序中启用解析通知解析。我假设您已经在项目中包含了相关的jar文件(在我的例子中为Parse-1.7.1.jar)。
Step-1:在Application类的onCreate()函数中,声明 Parse.initialize(this,Constants.PUSH_NOTIFICATION_APPLICATION_ID,Constants.PUSH_NOTIFICATION_CLIENT_ID);
用您的凭据替换PUSH_NOTIFICATION_APPLICATION_ID和PUSH_NOTIFICATION_CLIENT_ID。
步骤2:在清单文件中包含以下行。
<service android:name="com.parse.PushService" />
<receiver
android:name="path to class.CustomReceiver"
android:exported="false"
android:icon="@drawable/notification_icon"
android:logo="@drawable/notification_icon" >
<intent-filter>
<action android:name="com.parse.push.intent.RECEIVE" />
<action android:name="com.parse.push.intent.DELETE" />
<action android:name="com.parse.push.intent.OPEN" />
<category android:name="your package name" />
</intent-filter>
</receiver>
Step-3:创建CustomReceiver类,如:
public class CustomReceiver extends ParsePushBroadcastReceiver {
private final String TAG = "ParseNotification";
private String msg = "";
private String[] split = new String[2];
public static SharedPreferences settingsUserProfile;
private String promoOfferUrl = null;
public void onPushOpen(Context context, Intent intent) {
try {
String action = intent.getAction();
String channel = intent.getExtras().getString("com.parse.Channel");
JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));
Log.d(TAG, "got action: " + action + " on channel: " + channel + " with:");
Iterator itr = json.keys();
while(itr.hasNext()) {
String key = (String) itr.next();
Log.d(TAG, "..." + key + " => " + json.getString(key));
if(key.equals("move")) {
msg = json.getString(key);
}
}
} catch (JSONException e) {
Log.d(TAG, "JSON Exception: " + e.getMessage());
}
if(msg.equals("1")) {
// move to Activity X
} else {
// move to Activity Y
}
}
第4步:编写推送通知,如:
{
"alert": "Hello World",
"title": "bye bye",
"move": "1"
}
您必须转到Parse UI并在“编写消息”部分中,选择JSON作为消息类型并粘贴上面的示例。就我而言,我根据“移动”参数的值转移到不同的活动。您可以相应地设计JSON,从而修改代码以满足您的需求。
希望它能解决您的问题。