مشکل در نوتیفیکشن پارس (حل شد) +(اموزش کامل شد)
با سلام دوستان من یه مشکلاتی در سیستم پارس داشتم که حل شد و حالا میخوام اموزش استفاده از سیستم پارس رو بدم
که دوباره شما به مشکل برنخورید و وقت شما از بین بره ....
در پایین اموزش قرار گرفته
باتشکر از شما
سید حامد حسینی
به اخطار ها توجه کن:
<!-- IMPORTANT: Change "com.example.test.permission.C2D_MESSAGE" in the lines below to match your app's package name + ".permission.C2D_MESSAGE". -->
این میگه که به جای عبارت
com.example.test
اسم پکیج برنامه ات رو بنویس
<!-- IMPORTANT: Change "com.example.test" to match your app's package name. -->
و اینم همینو میگه
دوست من اسم پکیج برنامم همین هست com.example.test من با ابزار find در replaceall manifest کردم.
از دوستانی که وقت گذاشتن برای حل این مشکل ممنون میشم.
خودم حلش کردم
از دوستانی که هنوز در راه اندازی آن مشکل دارند پیام خصوصی بدن تا بگم براشون چه باید بکنند.
سلام من مشکل رو حل کردم میخوام به دوستان هم بگم از چه روشی برن جلو واستفاده کنند.
اول از همه من از روشی که خود پارس در پروژه هاش استفاده کرده بود رفتم.
دوم اینکه شما باید این کتابخونه ها رو دانلود کنید تا بعد بگم چه کار کنید.http://s3.picofile.com/file/8206729126/lib.zip.html
سوم اینکه شما این فایل ها رو که دانلود کردین از حالت zip خارجش کنید و کل محتوای پوشه رو کپی میکنید داخل پوشه libs پروژه. تاکید میکنم باید کپی کنید.
چهارم حالا نوبت به وارد کردن فایل parse-1.3.jar به پروژه هست برای وارد کردن هم از روش add external jar باید برین جلو برای این روش هم برای تازه کار ها توضیح میدم اول روی پروژه خود کلیک راست کرده و بر روی properties کلیک کرده و در سمت چپ صفحه بر روی java build path و حالا بر روی add external jar کلیک کرده فایل رو وارد کرده و در اخر بر روی ok کلیک کنید.
و در صورتی که از اندروید استدیو استفاده میکنید در قسمت build gradle و در تگ dependencies این کد ها را اضافه کنید تا کتابخانه به برنامه اضافه شود.
compile 'com.parse.bolts:bolts-android:1.+'
compile 'com.parse:parse-android:1.+'
و در اخر بر روی sync now کلیک کنید و حتما به اینترنت متصل باشید.
پنجم حالا برین داخل فایل manifest و این کد ها رو اضافه میکنید.
در قسمت uses-permission این کد ها
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!--
IMPORTANT: If you change the package name of this sample app, change
"com.parse.tutorials.pushnotifications.permission.C2D_MESSAGE" in the
lines below to match the new package name.
-->
<permission
android:name="نام پکیج برنامه.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="نام پکیج پروژه .permission.C2D_MESSAGE" />
در تگ application هم این کد ها رو وارد کنید.
<service android:name="com.parse.PushService" />
<receiver android:name="com.parse.ParsePushBroadcastReceiver"
android:exported="false">
<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" />
</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" />
<!--
IMPORTANT: Change "com.parse.starter" to match your app's package name.
-->
<category android:name="نام پکیج برنامه" />
</intent-filter>
</receiver>
و حالا یک فایل java بسازید و اسمش رو بزارید ParseApplication و extends کنید به Application و این کد ها رو بریزید داخلش
@Override
public void onCreate() {
super.onCreate();
Parse.initialize(this, "", "");
ParseInstallation.getCurrentInstallation().saveInBackground();
}
و این کد رو هم داخل تگ application در manifest در خط اول ان باشد.
android:name="نام پکیج خود .ParseApplication"
خوب حالا برین داخل سایت parse ویه app جدید بسازید.
برای اولین بار باید شما پروژه رو بر روی یه گوشی اجرا کنید که در سیستم پارس ثبت شود و بعد بتوانید push بفرستین .
تا اینجا فکر کنم بس دیگه باشه.
اگر خوشتون اومد تا بقیش رو هم بزارم.
برای این که بخوایم لینک یا uri ای که در کد json خود داریم رو باز کنیم از این کد استفاده می کنیم.
اول از همه یه کلاس درست میکنید به اسم PushBroadcastReceiver و extends میکنید به ParsePushBroadcastReceiver و این کد ها رو میریزین داخلش
import android.app.Activity;
import android.app.Notification;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.IBinder;
import com.parse.ParsePushBroadcastReceiver;
import org.json.JSONException;
import org.json.JSONObject;
/**
* Created by hamed on 10/7/2013.
*/
public class PushBroadcastReceiver extends ParsePushBroadcastReceiver {
String url;
@Override
protected Class<? extends Activity> getActivity(Context context, Intent intent) {
return super.getActivity(context, intent);
}
@Override
protected Bitmap getLargeIcon(Context context, Intent intent) {
return super.getLargeIcon(context, intent);
}
@Override
protected Notification getNotification(Context context, Intent intent) {
return super.getNotification(context, intent);
}
@Override
protected int getSmallIconId(Context context, Intent intent) {
return super.getSmallIconId(context, intent);
}
@Override
protected void onPushDismiss(Context context, Intent intent) {
super.onPushDismiss(context, intent);
}
@Override
protected void onPushOpen(Context context, Intent intent) {
super.onPushOpen(context, intent);
}
@Override
protected void onPushReceive(Context context, Intent intent) {
super.onPushReceive(context, intent);
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if (intent != null && intent.hasExtra("com.parse.Data")) {
try {
JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));
url = json.getString("uri");
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
context.getApplicationContext().startActivity(i);
} catch (JSONException e) {
}
}
}
}
ودر اخر در وارد سایت parse شوید ود در قسمت push ها بر روی send push کلیک کنید و در قسمت Write Your Message پیام خود را بنویسید در صورتی که میخواهید json ارسال کنید دکمه Message Type را بر روی json قرار دهید.
مثلا میخواهید وقتی کاربر بر روی پوش کلیک کرد link برنامه کافه بازار باز بشه.
از این کد ها json استفاده میکنیم
{
"alert": "test", "titel": "link", "uri": "https://cafebazaar.ir/app/ir.yadsaz.jadvalfaen/?l=fa" }
دو تا سوال :
مگه نمی شه با خود ارسال پیغام جیسون از طرف پارس وارد بازار شد که شما کد جدا نوشتید؟
دوم اینکه لطفا توضیح بده خط به خط این کدهایی که تو کلاس اپلیکیشن اضافه کردی برای چی هستن. چون برای من دوخط کد داره کلا:
مال شما :
Parse.initialize(this,"","");// کد ها رواز سایت پارس گرفته و بریزین داخل آن ها
ParseUser.enableAutomaticUser();
ParseACL defaultACL =newParseACL(); defaultACL.setPublicReadAccess(true);
ParseACL.setDefaultACL(defaultACL,true);
PushService.setDefaultPushCallback(this,MainActivity.class);
ParseInstallation.getCurrentInstallation().saveInBackground();
مال من :
Parse.initialize(this, "", "");
ParseInstallation.getCurrentInstallation().saveInBackground();
//این که برای کد دهی اولیه برای سیستم پارس هست Parse.initialize(this, "", "");// کد ها رواز سایت پارس گرفته و بریزین داخل آن ها //این کد وقتی برنامه برای اولین بار اجرا بشه در سیستم پارس فعال میشه ParseUser.enableAutomaticUser(); // اینم برای شخصی سازی بیشتر مورد استفاده قرار میگیرد ParseACL defaultACL = new ParseACL(); defaultACL.setPublicReadAccess(true); ParseACL.setDefaultACL(defaultACL, true); // اینم برای اجرا کردن کد های در پس زمینه صفحه مورد نظر PushService.setDefaultPushCallback(this, MainActivity.class); ParseInstallation.getCurrentInstallation().saveInBackground();
در صورت خواستن تا منبع اموزشی رو هم بگم.
سلام اینم برای دوستانی که میخواستن نمونه پروژه بزارم اینم نمونش
http://s3.picofile.com/file/8209331992/ParseStarterProject.zip.html
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .