خانه » لایبرری های مفید و تجربیات شخصی خیلی مفید !!! » استفاده از parse برای ایجاد push notification

استفاده از parse برای ایجاد push notification

آموزش استفاده از Parse برای ارسال Notification در اندروید (سریع و آسان)

در این قسمت راه اندازی ساده سرویس پوش push notification را با استفاده از سرویس Parse آموزش می دهم :

در این آموزش از نسخه ۱٫۳٫۹ parse استفاده می شود که به توسط خود parse ساخته شده و از سرویس gcm گوگل استفاده نمی کند (نیاز به permission گوگل اکانت ندارد و نیاز به نسخه جدید گوگل پلی هم ندارد ، البته در نسخه های جدید تر از سرویس gcm استفاده شده)

برای این کار ابتدا لایبرری که در لینک زیر قرار داده ام را دانلود و به برنامه خود اضافه کنید : (فایل jar )

http://www.4shared.com/file/fNLAyN1Qba/Parse-139.html

سپس در اندروید مانیفست AndroidManifest.xml دسترسی های زیر را اضافه کنید :


<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.WAKE_LOCK"/>


و در قسمت application در پایین activity ها کد های زیر را هم اضافه کنید :

 <!--Required for Parse-->
        <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>

با این کد ها یک service و یک receiver برای parse ایجاد می شود.

در صفحه اول برنامه یا در صفحه Application کد های زیر را اضافه کنید :

 // Init Parse
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {
            // Initialize Parse
            Parse.initialize(this, PARSE_APPLICATION_ID, PARSE_CLIENT_KEY);

            PushService.setDefaultPushCallback(this, Splash.class);
            ParseInstallation.getCurrentInstallation().saveInBackground();
            Parse.setLogLevel(Parse.LOG_LEVEL_INFO);
        }


PARSE_APPLICATION_ID
و
PARSE_CLIENT_KEY

را باید از سایت parse بگیرید.
برای این کار وارد سایت www.parse.com شوید سپس یک اکانت جدید بسازید ، و بعد از آن در بخش push notification این ۲ کد را دریافت کنید و در برنامه قرار دهید.
بر روی گزینه تست در صفحه www.parse.com کلیک کنید و نتیجه را مشاهده کنید.
تمام شد 🙂
حالا میتونید از داخل سایت parse بخش push nutification پیغام خود را نوشته و به تمام کسانی که از اپلیکیشن شما استفاده می کنند ارسال کنید .

 

برچسب ها:
پست قبلی
پست بعدی

درباره ایلیا عابدینی

برنامه نویس اندروید و کارشناس مهندسی پزشکی، نفر سوم مسابقه برنامه نویسی اندروید http://www.schallenge.ir ، از سال 92 برنامه نویسی اندروید رو شروع کردم و در حال حاضر در شرکت عصر دانش در حال توسعه اپلیکیشن تجارت پی می باشدم ، این وبلاگ رو ساختم تا تجربیات روزانه و مفید خودم رو داخل اون بزارم. رزومه : iact.ir/cv

42 دیدگاه

  1. فایل لایبرری موجود نیست!

  2. سلام, آیا با این روش امکانش هست که وقتی خبر جدیدی در سرور قرار گرفت به صورت اتوماتیک عمل push notification انجام شود؟
    آیا همیشه برای ارسال notification حتما باید از سایت استفاده کرد؟

    • سلام بله روش هایی برای ارسال هست که خودتون عمل push رو انجام بدهید ، فعلا به دلیل امتحانات فرصت پاسخ کامل ندارم .
      در ضمن اگر اطلاعات شما به تعداد زیادی قرار است push شود بهتر است از ارتباط سوکت استفاده کنید ، یکی از سایت هایی که امکان استفاده از سوکت را می دهد pusher.com هست که هم از طریق سرور و هم از کلاینت می توان عمل push کردن اطلاعات را انجام داد ، مدتی پیش من در یکی از برنامه هام از pusher استفاده کردم و قصد قرار دادن آموزش استفاده را هم داشتم که فرصت نکردم هنوز.

  3. سلام

    من یه سوال در مورد نوتیفیکشن داشتم!

    من یه برنامه ای  دارم که داره یه فایل

    xml

    رو از سرور می خونه می خوام هر وقت این فایل تغییر کرد یه نوتیفیکیشن به اندروید فرستاده بشه!

    امکانش هست؟لطف می کنید منو راهنمایی بکنید؟

    اگه راهنمایتونو به ایمیلم بفرستید ممنون می شم!
     

    • سلام از این متد میتونید واسه فرستادن نوتیفیکیشن استفاده کنید :

          private void showNotification(Context context, String title, String text) {
              NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

              NotificationCompat.Builder builder = new NotificationCompat.Builder(context);

              Intent notificationIntent = new Intent(context, MainActivity.class);
              notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

              PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);

              builder.setContentTitle(title)
                      .setContentText(text)
                      .setSmallIcon(R.drawable.logo)
                      .setContentIntent(contentIntent)
                      .setAutoCancel(true);
              mNotificationManager.notify(1, builder.build());
          }

  4. سلام یه سوال

    چطور میشه کاری کرد که وقتی کاربر رو ی نوتیفیکیشن کلیک کرد یه لینک باز بشه؟ مثلا یه برنامه در بازار؟

    ممنون میشم راهنمایی فرمایید

     

  5. سلام مهندس میشه همینو برای b4a هم یاد بدین؟

     

  6. خواهشا برای b4a هم یاد بدین

  7. چطور میشه کاری کرد که وقتی کاربر رو ی نوتیفیکیشن کلیک کرد یه لینک باز بشه؟ مثلا یه برنامه در بازار؟

    ممنون میشم راهنمایی فرمایید

  8. سلام مهندس جان خداقوت

    من با استفاده از روش بالا که فرمودید جلو رفتم ولی جواب نداد همه ی تنظیمات رو هم انجام دادم بازم نشد که نشد

    دوستان لینک یه سورسی رو هم برا من فرستادن ولی فایل .. آر.. نداشت

     

    Flile R nadasht 🙂

     

    ممنون میشم یه سورس کامل بزارید

     

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

  9. با سلام .

    ممنون از به اشتراک گذاری دانشتون.

    من با استفاده از آخرین اس.دی.کی (۱٫۹٫۰ ) یک برنامه اندروید ساختم . و روی گوشیم و امولاتور اجراش کردم . ولی فقط روی امولاتور پیغامهارو  میگیرم .

    چرا ؟ چطوری حلش کنم

    ممنونم

    • امکانش هست برنامه هایی مثل task killer داشته باشید که سرویس های باز رو می بندن

      این لایبرری یک سرویس باز در گوشی نگه میداره که اون سرویس با ارتباطی سوکت با سرور parse در ارتباط هست و در زمان رسیدن پیغام به اون خبر میده

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

  10. سلام

    یه سوال!

    من از NotificationBuilder برای ایجاد نوتیفیکیشن استفاده کردم.

    همچنین Minimum SDK من ۱۴ هست 

    نوتفیفیکیشن رو میتونم ایجاد کنم اما نمیتونم وقتی روش کلیک شد به برنامه هدایتش کنم.

    روش setLastestEventInfo هم دیپریکیت شده!

    چیکار کنم؟!

    ممنون

    • این مسال رو ببین :

      // Instantiate a Builder object.
      NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
      // Creates an Intent for the Activity
      Intent notifyIntent =
              new Intent(this, ResultActivity.class);
      // Sets the Activity to start in a new, empty task
      notifyIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                              | Intent.FLAG_ACTIVITY_CLEAR_TASK);
      // Creates the PendingIntent
      PendingIntent notifyPendingIntent =
              PendingIntent.getActivity(
              this,
              ۰,
              notifyIntent,
              PendingIntent.FLAG_UPDATE_CURRENT
      );

      // Puts the PendingIntent into the notification builder
      builder.setContentIntent(notifyPendingIntent);
      // Notifications are issued by sending them to the
      // NotificationManager system service.
      NotificationManager mNotificationManager =
          (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
      // Builds an anonymous Notification object from the builder, and
      // passes it to the NotificationManager
      mNotificationManager.notify(id, builder.build());

       

       

      منبع: http://developer.android.com/guide/topics/ui/notifiers/notifications.html

      • ممنون از جوابتون با کد زیر حل شد:

        Intent notificationIntent = new Intent(getApplicationContext(), MainActivity.class);
                                PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(),
                                        0, notificationIntent, 0);

         

        mBulder..setContentIntent(contentIntent);

  11. با سلام و خسته نباشید 

    من دو تا سوال دارم:

    api پارسه رو چطور باید توی پروژه استفاده کنسم یا اصلا از کجا باید بگیریمش ؟    

    (طبق تحقیقاتی که کردم باید سایت یه api ,key بده که داخل پروژه قرار بدیم.    ولی شما هم این امکان رو نگفتین(

     همچنین سوال دوم

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

    قبلا از راهنماییتون تکر لازم رو دارم.

  12. با سلام وتشکر

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

    REST API

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

    با تشکر فراوان

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

  14. سلام خسته نباشید
    اگه بخوام نوتیفیکش هنگام کلیک کردن هیچ اکتیویتی رو نشون نده باید چیکار کنم ؟
    یعنی هیچ اکتیویتی پیشفرضی نداشته باشه ؟

  15. سلام

    من از این روش استفاده کردم ولی فقط روی ایمولاتور نوتیفیکیشن دریافت میشه و در دیوایس واقعی کار نمی کنه؟!!
     

  16. سلام 
    مطالب رو خوندم واقعا عالی بود 
    خسته نباشید 
    و یک سوال که شاید جاش اینجا نباشه ولی ببخشید نمی دونم کجا مطرح کنم 
    من دنبال سورس یک دیکشنری ساده هستم 
    از کجا میتونم تهیه کنم ؟

     

    • من خودم واسه ساخت PDF Translator  دنبال یک دیتابیس دیکشنری گشتم و بعدش دیگه خیلی سخت نیست کار با دیتابیس هست

      دنبال دیتابیس بگردید پیدا می کنید

  17. با تشکر . من از این سایت برای  طراحی نوتیف تو  یونیتی  استفاده کردم .   مشکلی که هست اینه که وقتی اپ رو روی دیوایس نصب می کنم  واجرا می کنم  پارس    هیچ وجه این موضوع رو نمیبینه و یوزر جدیدی به  پروژه اضافه نمی کنه . در نتیجه   نوتیف برای هیچکس ارسال نمی شه .  

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

  19. سلام

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

    http://pushe.co&nbsp;

    به نظر من که خیلی از پارس ساده تره

  20. با عرض سلام و خسته نباشد

    یه سوال از خدمتتون در رابطه با push notification داشتم:

    من یه کلاسی ساخته و از push broadcast receiver اکستندش کردم  و تو مانیفست هم تعریفش کردم (در حقیقت همون چیزهایی که در سایت stack over flow گفته رو انجامش دادم  ولی نمی دونم چرا هیچ یک از متد های اون کلاس رو اجرا نمی کنه مخصوصا متد on push receive ممنون می شم راهنمایی کنید.

  21. سلام

    چطور میشه کاری کرد که وقتی کاربر رو ی نوتیفیکیشن کلیک کرد یه لینک باز بشه؟

     

  22. سلام

    وقتی از پارس استفاده میکنیم میشه نوتیفیکیشن ها رو همه رو تو یه گروه گذاشت ،مثلا مثل تلگرام، که وقتی کاربر روی لینکش کلیک کرد برنامه باز بشه ؟

  23. سلام.  ممنون از آموزش های خوب و مفیدتون

    ببخشید میخواستم بگم با توجه به اینکه این سرویس توسط فیسبوک خریداری شده و به زودی بسته خواهد شد آیا سرویس های مشابهش هم وجود داره که معرفی کنید؟ 

    البته یه نمونه ایرانیش رو یکی از دوستان همین جا معرفی کرد و من امتحانش کردم و خیلی خوب بود ولی میخواستم ببینم غیر از اون هم آیا سرویس خوبی پیدا میشه؟

    • سلام

      بله متاسفانه سرویس پارسه تا سال دیگه قطع می شود ، البته سرویس های مشابه زیاد هست ، اما سرویس های ایرانی من ۲ مورد http://pushe.co/ و http://baas.ir/ را می شناسم که هر ۲ تیم خوبی هستند ، شاید در آینده آموزشی هم برای استفاده از این سرویس ها درست کردم.

      اما ترجیحا استفاده از سرویس GCM گوگل رو پیشنهاد می کنم ، ولی خوب برای شروع به راحتی دیگر سرویس ها نیست 

  24. سلام

    برای سمت سرور نمونه کدی دارید؟ چطوری وقتی رکوردی به دیتابیس سرور اضافه شد به کاربر اطلاع بدم؟

    لطفا یک لینک نمونه کد بذارید

    • این آموزش برای استفاده از سایت parse.com بود که دیگه زیاد بدرد نمیخوره چون سایت parse کمتر از ۱ سال دیگه shutdown میشه ، در این آموزش نیازی نبود به سمت سرور و همش رو خود parse پیاده سازی کرده بود ، ولی اگر قصد استفاده از GCM گوگل دارید ، در اون بعد از اضافه کردن لایبرری و فراخوانی کلاس های مربوط در پروژه اندروید ، کلاس GCM برای هر کاربر یک registretaionId میده که با استفاده از اون میتونید برای اون کاربر push ارسال کنید ، در واقع باید وب سرویسی بنویسید که registrationId هارو دریافت و ذخیره کنه سپس زمانی که نیاز داشت به ارسال push این registrationId هارو به GCM ارسال کنه تا push ارسال بشه و بعد روی اپلیکیشن از طریق یک کلاس Reveiver اون رو دریافت و در صورت نیاز Notification نشان دهد.

      آموزش کامل نحوه استفاده از GCM :

      https://developers.google.com/cloud-messaging/android/client

  25. سلام من در برنامم از پوش نوتیفیکیشن پارس استفاده میکنم،و برای ارسال نوتیفیکیشن مشکلی ندارم ولی وقتی با جی سان کار می کنم و با یو ار ای میخوام به یک سایت یا برنامه در بازار لینک بدم بدرستی کار نمی کنه و خود برنامه اصلی رو باز می کنه،بنظرتون مشکل کجاس؟

    با تشکر

  26. سلام استاد
    من پارسه رو دیگه ول کردم  این توسعه یار  خیلی داره خوب امکانات میده اصن فکر نمیکردم همچین سیستمی بچه های ایران بتونن درست کنن ….کاش زودتر  پارسه تعطیل میشد …
    خدایی دمشون گرم یه تیکت دادم سر ۵ دقیقه نشد, مشکلم رو حل کردن …. حتی بهم سورس دادن تا دیگه مشکل نداشته باشم …
    کلا این سرویس ها رو دارن ارائه میدن :
    ۱- اعلان لحظه ای

    به طور لحظه ای برای کاربران خود اعلان بفرستید و آن اعلان را بصورت دلخواه مانند: ناتیفیکیشن ، بنر و یا… نمایش دهید…

    ۲- مدیریت کاربران

    کاربران خود را در برنامه هایتان مدیریت کنید ، از جمله: عضویت و ورود کاربر ، ویژه کردن کاربران ، حذف و مسدود سازی آنها ، فرستادن اعلان به هرکدام…

    ۳- برقراری ارتباط با کاربران

    ارسال و دریافت پیام بین شما و کاربران برنامه هایتان…

    ۴- آمار دقیق

    دریافت آمار تعداد نصب برنامه ها ، تعداد کاربران عضو شده ، تعداد اعلان های ارسال شده ، نمایش داده شده و کلیک شده…

    ۵- اعلام رسیدن نسخه جدید برنامه

    اعلام بروز شدن برنامه و مجبور به دانلود آن پس از رسیدن نسخه جدید…

    ۶- بارگذاری داده

    ارسال داده های متنی به صورت لحظه ای به برنامه ها…

    همین امروز هم کتابخونه جدیدشون رو آپدیت کردن باز امکانات بیشتر دادن مثلا:

    ممکنه  بخواید هنگام ارسال اعلان بر اساس #مدل_گوشی ، #نسخه_اندروید و یا #شماره_سریال تفکیک انجام بدید.
     یا هنگام ثبت نام بخواهید #فیلد_های_اضافه ای نیز همراه با اطلاعات اصلی بفرستید.
    ✔️بنابراین ۳فیلد اختیاری هم برامون اختصاص دادن ….

    یا مثلا برنامه ی من در یک زمان خاص ، از یک مدل گوشی دچار اختلال و #Force_Close(توقف_اجباری) بشه.
    ✔️ با اعمال این امکان جدید در برنامم   از #متن_خطای_لاگ ، #زمان_بروز_خطا ، #مدل_دستگاه و … باخبر میشم.
    چقدر تعریف کردم ازشون …. ولی حقشون این تعریف

    آدرسش  : http://toseeyar.com
    آدرس کانال تلگرامش : https://telegram.me/toseeyar

     

     

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نمی شود.علامت دارها لازمند. *

*

رفتن به بالا