بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

مشکل در ارسال نوتیفیکیشن تبلیغاتی با استفاده از پارس/parse.com (رفع شد + کارکرد 100% بدون مشکل) + سورس کد

مدیریت گفتگو
محسن علیزاده 11 سال پیش
آخرین تغییر: 11 سال پیش

دوستان و همکاران سلام،
قصد دارم روی یکی از اپلیکیشنام نوتفیفکشن آنلاین راه اندازی کنم و پارس رو انتخاب کردم.
ولی یه مشکلی که هست اینه که کدها و متدهای مختلف برای ثبت دستگاه داره و هر کدوم یه جور مشکل دارن.
از جمله مشکلات من که چندین جا دیدم به فارسی و انگلیسی مطرح شده:
- نوتیفیکیشن فقط به ایمولاتور ارسال می شه و توسط دستگاه حقیقی قابل دریافت نیست (که البته من این مشکل رو رفع کردم)

کد رفع ایراد برای این قسمت:

        protected void onCreate(Bundle savedInstanceState) {
Parse.initialize(this, "appkey", "clientkey");
PushService.setDefaultPushCallback(this, MainActivity.class);
ParseInstallation.getCurrentInstallation().saveInBackground();
ParseAnalytics.trackAppOpened(getIntent());
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

- بعد از رفع این مشکل دو مشکل جدید به وجود اومد:
    1 - عدم دریافت نوتیفیکیشن بعد از قفل و باز شدن دستگاه
    2 - کرش کردن زمانی که برنامه رو بستیم و رفتیم، بعد برگشتیم و وای فای رو روشن می کنیم... (مشخصه که از رسیوره)

ممنون میشم یک کد بدون مشکل رو ارائه بدید...

لینک اپلیکیشن در بازار

نظرات

حامد 11 سال پیش
مجوز RECEIVE_BOOT_COMPLETED را در برنامه قرار دادید؟ .... Parse.initialize(this, "appkey", "clientkey"); کد کد هم در کلاس Global یا همان G قرار دهید.
حامد 11 سال پیش
از این آموزش استفاده کنید هم مجوز کمتری دارد ، هم تست شده است و کاملا صحیح میباشد : لینک
doost_fu 11 سال پیش
اگه لینکی برا ساخت این نوتیفکش به صورت سرور شخصی هم دارید لطف کنید . ممنون
حامد 11 سال پیش
البته فکر نمیکنم کامل باشه ولی کارهای اصلی سمت سرور را آموزش داده است . سمت اندروید هم با کمی تلاش به راحتی میتوانید پیاده سازی کنید . یا اینکه میتوانید برای مدرس در تاپیک پیام بفرستید تا آموزش را کامل کند .
mahdi2565 11 سال پیش
دقیقااااااا منم همین مشکل رو با Parse دارم و برنامم در پیش زمینه خود به خود کرش میکنه !!!!!!!!!! کسی واقعا راه حلی بلدی؟؟؟؟؟ البته بهترین راهش ساخت سرور اختصاصی هست که متاسفانه به شخصه نتونستم اموزش جامعی پیدا کنم!!!!
محسن علیزاده 11 سال پیش
حامد جان ممنون، بله پرمیشنهارو کامل گذاشتم، این آموزشهارو هم دیدم، امتحانم کردم... تشکر بابت ارسال پاسخ

پاسخ‌ها 12

Psycho 11 سال پیش

برای حل مشکل کرش کردن برنامه در هنگام استفاده از سیستم parse برای نوتیفیکیشن کاری که میگم رو انجام بدین مشکلتون 100% برطرف میشه !

کدی که برای initialize کردن هست یعنی کد زیر یک ورودی context داره که شما این کد رو توی اکتیویتیتون گذاشتین احتمالا و this رو بهش پاس دادین اما این context که به عنوان ورودی میگیره باید از نوع application باشه تا برنامه کرش نکنه :

 Parse.initialize(this,"appkey","clientkey");

میتونین یه کلاس بسازین که از application اکستند کنه و این متد رو اونجا استفاده کنین و parse رو اونجا initialize کنین بقیش تو اکتیویتیتون باشه

مثلا اینجوری :

 public class MyApplication extends Application {

@Override
public void onCreate() {
  Parse.initialize(this,"appkey","clientkey");

}

}

امیدوارم تونسته باشم کمکتون کنم بازم اگه مشکل حل نشد بگین تا باهم برطرفش کنیم ، من خیلی وقته از parse استفاده میکنم و واسه راه انداختنش خداییش خیلیییییی گیر کردم اما الان هیچ مشکلی نداره و عالی کار میکنه

نظرات

مجتبی یگانه 11 سال پیش
دست شما درد نکنه اما اینها اشتباهات شما هست و تو پارس گفته که باید در کلاسی که در سطح Application هست این کار ها رو انجام بدید که با آموزش های ما میشه کلاس G معروفمون !
محسن علیزاده 11 سال پیش

با تشکر فراوان از دوست خوبمون کیا ( Psycho )

کسایی که با پارس کار کرده باشن می دونن من چی میگم، با هر مدل جستجویی که انجام بدید شما بیش از 5 نوع کد و متد برای ثبت دستگاه در سرور پارس پیدا می کنید که هرکدوم یه مشکلی دارن متاسفانه!

بازهم ممنون از آقای کیا واقعا برای من شخصا خیلی ارزشمند بود...

خب، دوستانی که می خوان از این سرویس استفاده کنن چند مورد رو که برای خودم مهمه اینجا آموزش میدم، امیدوارم به دردشون بخوره.

محدودیت در تعداد ارسال نوتفیفکیشن پارس
ارسال نوتیفیکشن توسط پارسه به دفعات نامحدود در ماه برای یک میلیون دستگاه ثبت شده، کاملا رایگان می باشد. اگر بیش از یک میلیون دستگاه در سیستم شما ثبت شده باشد بابت هر 1000 نفر بایستی $0.05 تقبل کنید. اطلاعات بیشتر

ارسال نوتفیفکیشن لینک دار توسط پارس

برای ارسال این نوع نوتفیفکیشن، گزینه JSON رو انتخاب کنید و از کدهای زیر استفاده نمایید؛

  • باز کردن یک برنامه در بازار به صورت مستقیم:
{"alert" :"App Summary",
"title":"App Name",
"uri":"bazaar://details?id=com.example.name"}
  • باز کردن لینک در مرورگر:
 {"alert" :"Website Summary",
"title":"Site/Title Name",
"uri":"http://cafebazaar.ir"}

راه اندازی سرویس پارس در برنامه

از هیچکدوم از کد/متد های سایت پارس استفاده نکنید!

یک application extends به نام MainApplication در پکیجتون بسازید و کد زیر رو اونجا قرار بدید، کد مشتری و اپ رو هم که مشخصه از سایت پارس بگیرید و جایگزین کنید. نسخه جدید کتابخانه Parse رو هم در پوشه libs بگنجانید.

 public class MainApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Parse.initialize(this, "App Key", "Client Key");
ParseInstallation.getCurrentInstallation().saveInBackground();
}
}

فایل AndroidManifest.xml رو باز کنید و تگ <application رو پیدا کنید و خط زیر رو بهش اضافه کنید:

 android:name="com.example.name.MainApplication"

هیـــــچ، تاکید می کنیم هیچ کد اضافی در اکتیویتی Mainتون نیاز نیست.
موفق باشید...

نظرات

Psycho 11 سال پیش
لطف داری فقط انجام وظیفه بود :)
sar3da 11 سال پیش
دوست عزیز میشه شما لطف کنید وسورس خودتونو لینکش قرار بدید؟ درمن آیا راه کار ی هست که نیاز به دسترسی بوک کمپلت نباشه؟ و فقت برنامه دسترسی های اینترنت ویا تغییر درشبکه رو بخواد؟
محسن علیزاده 11 سال پیش
دوست خوبم، کد لازم رو در پاسخ بالا می تونید مشاهده کنید، فکر نمی کنم نیاز به سورس باشه. در مورد بوت کمپلت هم جای نگرانی نیست، بعد از ارسال برنامه به کافه بازار ایمیلی تحت عنوان "توضیح در مورد دسترسی های برنامه..." بفرستید و قید کنید که دسترسی ها بخاطر استفاده از سرویس سایت parse.com در برنامه گنجانده شده اند. گوگل پلی و سایر مارکت های دیگر هم کلا با این قضیه مشکل ندارند.
Smkm79 11 سال پیش
من توی پوش گزینه JSON رو میزنم و ناتیفیکیشن ارسال میشه ولی به جای اینکه بره توی بازار ، میره توی برنامه خودم ! مشکل چیه ؟
محسن علیزاده 11 سال پیش
بالا توضیح دادم که: {"alert" :"App Summary", "title":"App Name", "uri"//details?id=com.example.name"}
mahdi2565 11 سال پیش

سلام !!! خیلی ممنون بابت راهنمایی هاتون 

ولی ظاهرا طلسم من نمیخواد شکسته شه

من دقیقا کارایی که گفته بودین رو انجام دادم ولی وضع بدتر هم شد !!!

یعنی من وقتی درون برنامم و push میفرستم ، کرش میکنه !!!

قبلا حداقل وقتی تو برنامه بودم درست کار میکرد !!!!  D-:

پارس به دستگاه میرسه ولی ظاهرا کامپایل نمیشه و کرش میکنه...!!!!

نظرات

محسن علیزاده 11 سال پیش
تو این ارور میگه initialize اتفاق نمیفته، توی مانیفست به MainApplication لینک دادین؟
mahdi2565 11 سال پیش
بله ، به صورت زیر تعریف کردم
mahdi2565 11 سال پیش
ظاهرا کد در بخش نظرات نشون داده نمیشه در پاسخ میزارم
mahdi2565 11 سال پیش

در مانیفست به این صورت تعریف کردم

   <activity
            android:name=".MyApplication"
            android:label="@string/app_name" >
            </activity>

نظرات

محسن علیزاده 11 سال پیش
اشتباه گذاشتی مهدی جان، صبر کن یک سورس آماده بسازم، بهتره
محسن علیزاده 11 سال پیش

سورس راه اندازی نوتفیفکیشن پارس (آپدیت شد)

اگر در برنامه تان از این سورس استفاده کردید و موفق بود حتما لینک برنامتون رو اینجا قرار بدید، ممنون و موفق باشید.

نظرات

محسن علیزاده 11 سال پیش
اگر درست شد تشکر از دوست خوبمون کیا، فراموش نشه ;) ممنون
omidmhks 11 سال پیش

 برا من که اصلا برنامه ران نمیشه! 

ران تایم ارور میده باز خوبه برا شما ران میشه

 دقیقا هم همین کار ها رو انجام دادم :( 

نظرات

mahdi2565 11 سال پیش
سورسی که شما دادین ریسیور و دسترسی و این حرفارو نداشت و من متناسب با پکیج اینارو اضافه کردم اما بازم کرش میکنه !!!!!!!
محسن علیزاده 11 سال پیش
سورس منو کامل کن، اسم پکیجشو اونی که میخوای بذار، کد مشتری و api رو هم واقعی بذار بفرست واسم ببینم
محسن علیزاده 11 سال پیش
شرمنده دوستان یک کتابخانه در سورس کد کم بود... لینک سورس آپدیت شد.
omidmhks 11 سال پیش
الان تست میکنم دوباره
mahdi2565 11 سال پیش

اصلا باورم نمیشه که کار کرد !!!!!

از دقیه اول که پست رو اپدیت کردین هزار بار این برنامه رو تست کردم و همه جوره بهم جواب داد !!!!!

آقا محسن دمت گرم !!!!

راستی برای اطمینان هم این کد رو تو کلاس MainApplication اضافه کردم که دیگه جایی برای ایراد نباشه !!!!

 ParseInstallation.getCurrentInstallation().saveInBackground();

 

نظرات

محسن علیزاده 11 سال پیش
قربونت، باور کن منم خودم خیلی تستش زدم، اذیت شدم انصافا :دی ولی خب آقا کیا به دادمون رسید و کلی تو وقتمون صرفه جویی شد!
omidmhks 11 سال پیش
شما از کدوم کامپایلر استفاده میکنی? اکلیپس بهنام?
omidmhks 11 سال پیش
شما از کدوم کامپایلر استفاده میکنی? اکلیپس بهنام?
mahdi2565 11 سال پیش

اینم ی کدی که میتونه لوگوی pushnotification هاتونو تغییر بده که این خط باید قبل از بسته شدن تگ Application درون مانیفست قرار بگیره !!!... ( برای تغییر ادرس لوگو ، ابتدا لوگو رو در پوشه res>drawable بریزید سپس به جای push_icons ، نام لوگوتونو وارد کنید )

 <meta-data android:name="com.parse.push.notification_icon" android:resource="@drawable/push_icon"/>

نظرات

omidmhks 11 سال پیش

 لعنتی برا من اصلا ران نمیشه! 

دیگه داره اعصابم رو خورد میکنه 

همون پروژه example دو رو زدم تغییر دادم پکیج رو اما بازم حتی ران هم نمیشه! :( 

اینم ارور

نظرات

omidmhks 11 سال پیش
البته اندرویدش رو کردم 2.2 چون امولیتورم ٤.٠.٣ هست
محسن علیزاده 11 سال پیش
امید جان این پروژه آپدیت شدست: لینک یه زحمت بکش min-sdk رو بذار 11 یه تست رو گوشی خودت بزن...
omidmhks 11 سال پیش
باز هم فورس میده! البته کد پارس رو تو جاوا کامنت میکنم کار میکنه میشه بیای با تیم ویور برام ردیف کنی? ممنونت میشم
محسن علیزاده 11 سال پیش
امید عزیز، دو تا فایل در پوشه libs هست، اونارو حتما کپی کن، فایل مانیفیستتو برام پیام خصوصی کن
Vahid 11 سال پیش
امید عزیز، من خیلی با این مشکل دست و پنجه نرم کردم، تقریبا همه راه های گفته شده رو رفتم تا به حال... ولی مشکل حل نشد که نشد، sdk های مختلف رو برای کامپایل استفاده کردم، بازم جواب نگرفتم... اما بلاخره مشکلمو تونستم حل کنم، مشکل از Eclipse استاد بود که تو کامپایل مشکل داشت... و با Eclipse جناب نورحسینی بدون مشکل کامپایل میشه و دیگه از ارور NoClassDefFound خبری نیست. موفق باشی
omidmhks 11 سال پیش
همین کارو کردم حتی رو همون پروژه خودت پکیج نیم رو عوض کردم بازم نمیشه :( محسان جون تو با کدوم اکلیپس هستی?
omidmhks 11 سال پیش
شاید واقعا مشکل از adt بهنام باشه بنا به گفته دوستمون PicaKing
محسن علیزاده 11 سال پیش
نه دیگه، وقتی سورس من براتون ران میشه یعنی مشکل از پروژه شماست...
omidmhks 11 سال پیش
اخه همون سورس شما هم بابد اون خط کد های پارس رو کامنت کنم تا کار کنه
محسن علیزاده 11 سال پیش
عه؟ تو پیام خصوصی فک کردم گفتین کار می کنه... پس ممکنه از ایکلیپس باشه که دوستان اشاره کردن
mahdi2565 11 سال پیش
شما دوستان با کامپایل کردن برنامه رو اکلیپس مشکل دارین ، ولی من با Android studio هم برنامه رو کامپایل کردم ( با زبان محبوب متریال !!!) !!!!!!!!
mahdi2565 11 سال پیش
بله اقا محسن مشکلم که حل شد ... منظورم این بود که علاوه بر اینکه برنامم روی اکلیپس اجرا شد ، روی Android Studio هم اجرا شد !!!! الان سورس هر دو رو میزارم اگه این سورس برای امید اقا اجرا نشه باید کلاااااا اکلیپس رو از سایت اصلی بگیرن ....
omidmhks 11 سال پیش
ای بابا دوباره باید خفت نصب اکلیپس رو بکشم! دوباره دنگ و فنگ :(
omidmhks 11 سال پیش
ای بابا دوباره باید خفت نصب اکلیپس رو بکشم! دوباره دنگ و فنگ :(
mahdi2565 11 سال پیش
فک نکنم زیاد سخت باشه !!!! اکلیپس و sdk و adt رو حتما از منبع اصلی بگیرید !!!!
mahdi2565 11 سال پیش
البته دوستان سعیتون رو بر مبنای یادگیری Android Studio بزارید !!! واقعا جذابه !!!!
mahdi2565 11 سال پیش

خب ....

سورس برای اکلیپس 

سورس برای اندروید استادیو ( با طراحی متریال )

دوستان این سورس ها کامله یعنی همه دسترسی ها و رسیور ها داده شده و با نام پکیج برنامه ست شده ، هم کلید مشتری و کلید برنامه رو به صورته حقیقی وارد کردم که برنامه الکی به این دلیل کرش نکنه

پس این سورس رو مستقیم کامپایل کنید ، اگه برنامه کرش کرد ، اون موقع یعنی مشکل از ابزار برنامه نویسیتونه 

اگه اجرا کرد که این سورس رو با پروژه قبلیتون مطابقت بدین ببینین به قول معروف کجارو سوتی دادین D:

موفق باشید !!!!

نظرات

وحید 11 سال پیش

من نمی دونم نصب پارس چه مشکلی داره. خود پارس کدهارو آماده قرار داده و فقط باید جایگزین کنید. رو امولیتور هم اجرا نمی شه و باید برنامه رو گوشی داشته باشید تا تست درست انجام بشه. من فقط مشکل دوستمون رو دارم که برنامه به خودی کرش می کنه هی

نظرات

محسن علیزاده 11 سال پیش
حل شد که دوست عزیز. سورس رو بگیر کداتو جایگزین کن. پارس درست گفته فقط خیلی پیچونده...
mahdi2565 11 سال پیش
مشکل پارس این بود که شفاف سازی نکرده و خییییلی ریز لا به لای توضیحاتش گفته این دو خط کد رو درون یک کلاس اپلیکیشن بریزین که متاسفانه اکثرمون بی توجهی کردیم !!!!
Mohammad Vp 11 سال پیش

اصلاح شد در سورس باقی دوستان

نظرات

Mohammad Vp 11 سال پیش
خواهش میکنم محسن جان در مقابل لطفای شما و دوستان انکو کار ما هیچه!
Mohammad Vp 11 سال پیش
پست اپدیت شد و کدهای پروگارد هم اضافه شد!
mahdi2565 11 سال پیش
من در دو پست بابایی سورسی رو هم برای اکلیپس هم برای اندروید استادیو قرار دادم که روی اندروید 5 هم مشکلی نداشتم چون اصن گوشیم اندروید 5 هست!!! کد اماده پارس هم به گفته شما واقعا مشکل داره و خرابه
mahdi2565 11 سال پیش
من در دو پست بابایی سورسی رو هم برای اکلیپس هم برای اندروید استادیو قرار دادم که روی اندروید 5 هم مشکلی نداشتم چون اصن گوشیم اندروید 5 هست!!! کد اماده پارس هم به گفته شما واقعا مشکل داره و خرابه
mahdi2565 11 سال پیش
من در دو پست بابایی سورسی رو هم برای اکلیپس هم برای اندروید استادیو قرار دادم که روی اندروید 5 هم مشکلی نداشتم چون اصن گوشیم اندروید 5 هست!!! کد اماده پارس هم به گفته شما واقعا مشکل داره و خرابه
Mohammad Vp 11 سال پیش
پس بنده این پستمو پاک میکنم چون سورس شمارو چک نکرده بودم:)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .