نسخه ۱.۳.۱ کتابخانه پوشه: ویژگی ها و امکانات

نسخه ی ۱.۳.۱ کتابخانه ی پوشه با اضافه شدن چندین قابلیت جدید منتشر شد. در این پست با امکانات و قابلیت های این نسخه آشنا می شوید.

در نسخه ۱.۳.۱ از کتابخانه پوشه امکانات زیر اضافه شده است:

۱- می توانید با ثبت یک رسیور در برنامه تان، از کلیک شدن یا رد کردن اعلان مطلع شوید. برای این کار یک BroadcastReceiver در برنامه خودتان اضافه کنید و اینتنت فیلتر های زیر را در آن اضافه کنید. سه اینتنت فیلتر برای سه اتفاق کلیک،‌ دیسمیس اعلان و کلیک شدن دکمه ای از اعلان معرفی شده است. می توانید هر سه را استفاده کنید یا فقط یکی یا دو تا را بسته به نیازمندی خودتان مشخص کنید.

< receiver android:name=".NotifBroadcastReceiver">
< intent-filter>
< action android:name="co.ronash.pushe.NOTIF_CLICKED"/>
< action android:name="co.ronash.pushe.NOTIF_DISMISSED" />
< action android:name="co.ronash.pushe.NOTIF_BTN_CLICKED" />
</ intent-filter>
</ receiver>


در کلاس BroadcastReceiver هم کدی شبیه به زیر اضافه کنید:

public class NotifBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("co.ronash.pushe.NOTIF_CLICKED")){
Log.i("Pushe", "Broadcast co.ronash.pushe.NOTIF_CLICKED received");
//add your logic here
}
else if(intent.getAction().equals("co.ronash.pushe.NOTIF_DISMISSED")){
Log.i("Pushe", "Broadcast co.ronash.pushe.NOTIF_DISMISSED received");
//add your logic here
}
else if(intent.getAction().equals("co.ronash.pushe.NOTIF_BTN_CLICKED")){
String btnId = intent.getStringExtra("pushe_notif_btn_id");
Log.i("Pushe", "Broadcast co.ronash.pushe.NOTIF_BTN_CLICKED received. BtnId = "+btnId);
//add your logic here
}
}
}

همانطور که مشاهده می کنید در حالتی که یک دکمه اعلان کلیک شود، شناسه آن دکمه را که یکی از اعداد ۱ تا ۳ هست می توانید داشته باشید و از روی آن اینکه چه دکمه ای کلیک شده است را متوجه شوید.

۲- دسترسی READ_PHONE_STATE حذف شده است و جزو دسترسی های اختیاری است. از این به بعد هر دستگاه در پنل با یک شناسه ی پوشه که به شکل pid_20aa-ba40-a0 هست شناسایی می شود. شما از طریق تابع ()Pushe.getPusheId می توانید این شناسه را دریافت کنید و آن را در سرور خود نگهداری کنید.

۳- امکان ارسال اعلان از یک دستگاه به دستگاه دیگر فراهم شده است. برای این کار شما باید شناسه ی پوشه ی دستگاه گیرنده را داشته باشید. سه تابع برای ارسال اعلان از دستگاهی به دستگاه دیگر وجود دارد که عبارتند از:

  • ()Pushe.sendSimpleNotifToUser        ارسال اعلان ساده که فقط تیتر و متن دارد
  • ()Pushe.sendAdvancedNotifToUser    ارسال اعلان پیشرفته که اعلان بصورت یک رشته با فرمت جیسون مشخص می شود
  • ()Pushe.sendCustomJsonToUser       ارسال جیسون دلخواه که در این حالت اعلانی نمایش داده نمی شود

۴- با استفاده از این نسخه کتابخانه،‌ با انتخاب "باز کردن صفحه اپ در مارکت" به عنوان عملکرد اعلان ارسالی، در صورتی که کاربر دریافت کننده مارکت مورد نظر را نصب داشته باشد دقیقا همان مارکت باز خواهد شد. مثلا اگر شما بخواهید با کلیک اعلان، صفحه برنامه تان را گوگل پلی باز شود، اگر کاربر دریافت کننده اعلان گوگل پلی را نصب داشته باشد؛ صفحه ی برنامه شما در گوگل پلی باز خواهد شد و دیگر صفحه ای که از کاربر بخواهد یکی از مارکت های نصب شده روی گوشی را انتحاب کند نشان داده نمی شود.

۵- با استفاده از این نسخه کتابخانه،‌ در صورتی که در زمان ارسال اعلان، عملکرد اعلان را باز کردن اکتیویتی انتخاب کنید، می توانید داده هم به اکتیویتی خود ارسال کنید. داده ی ارسالی شما به فرمت string به اکتیویتی ارسال می شود و با کلید "pushe_activity_extra"  در اکتیویتی خود می توانید آن را دریافت کنید.

String extra = getIntent().getStringExtra("pushe_activity_extra");

۶- در پلاگین کوردوای نسخه ی جدید، امکان دریافت جیسون اضافه شده است. برای استفاده لطفا به توضیحات پلاگین کوردوا در راهنمای سایت مراجعه کنید.


نظرات (۱۱)

حسن
۱۲ شهریور ۹۶ ، ۱۸:۳۳
برای اینکه از خطا های برنامه با خبر باشیم باید کار خاصی انجام بدیم؟
"برای مشاهده خطاها باید کتابخانه را به ورژن ۱.۱.۰ به روز رسانی نمایید. همچنین باید از فایل مانیفست جدید استفاده نمایید."
این پیام یعنی چی؟ لطفا جواب بدید 
پاسخ:
سلام
منظور این هست که گزارش خطا از نسخه ی ۱.۱.۰ به بالا وجود دارد و مثلا اگر شما از نسخه ی ۰.۱۰.۲ پوشه دارید استفاده می کنید این امکان در آن وجود ندارد.
بنابراین اگر از نسخه ی مثلا ۱.۳.۱ پوشه استفاده کنید، گزارش خطا در برنامه شما فعال خواهد بود و crash های برنامه شما (خطاهای منجر به Force Close) در صفحه گزارش خطای پنل به شما نشان داده می شود. اینکه باید از فایل منیفست جدید استفاده کنید یعنی وقتی نسخه ی پوشه برنامه تان را بروزرسانی می کنید ، لازم هست که منیفست پوشه در برنامه تان هم بروزرسانی شود.
reza
۱۵ شهریور ۹۶ ، ۱۸:۲۴
قسمت 5
منظور از داده ارسالی چیست
دقیقا کدوم قسمت میشه استرینک ارسال کرد
پاسخ:
سلام
منظور هر داده ای هست که شما علاقمند باشید با باز کردن اکتیویتی خاص در آن اکتیویتی داشته باشید. فیلد ورودی برای ارسال آن از پنل پوشه به زودی اضافه می شود.
muhammad
۰۱ مهر ۹۶ ، ۱۲:۳۲
لطفا این نسخه رو هم برای برنامه ساز جواپ بروز کنید
پاسخ:
سلام
فکر می کنم که تیم جواپ این کار را انجام داده باشند. لطفا به سایت جواپ مراجعه بفرمایید.
حامد
۰۷ مهر ۹۶ ، ۱۶:۳۴
با سلام من بالای 100 برنامه ام با پوش باید همه اپدیت بدم؟
پاسخ:
سلام
اگر علاقمند هستید که از امکانات نسخه ی جدید استفاده کنید لازم هست که برنامه های خود را با نسخه ی جدید کتابخانه بروزرسانی کنید. در غیراینصورت نیازی به این کار نیست.
حسین
۱۶ مهر ۹۶ ، ۱۴:۰۹
سلام این نسخه رو هم برای برنامه ساز جواپ بروز کنید اگه هستش لینکشو بذارید
پاسخ:
سلام
هنوز پلاگین جواپ برای این نسخه از کتابخانه توسط تیم جواپ ارائه نشده و هر زمان که ارائه بشود ما لینک آن را اضافه می کنیم.
امید
۱۷ مهر ۹۶ ، ۰۱:۱۳
سلام
چجوری میتونم با داشتن پنل بدونه داشتن سایت و اپلیکیشن ففط با ارسال نوتیفیکیشن از طریق سایت شما به درآمد برسم؟
دقیق راهنمایی کنید مرسی
پاسخ:
سلام
پوشه سرویسی برای برنامه نویسان است و شما تنها با داشتن اپلیکیشن می توانید از کتابخانه پوشه و امکان ارسال نوتیفیکیشن استفاده کنید.
saeid
۲۳ مهر ۹۶ ، ۱۷:۵۷
طریقه پیاده سازی کد ها روی بیسیک فور اندروید به چه شکل هست؟؟
پاسخ:
سلام
لطفا سوال خود را بصورت دقیق با پشتیبانی پوشه مطرح کنید تا شما را راهنمایی کنند.
modir github
۰۴ آبان ۹۶ ، ۱۸:۴۹
با سلام
قسمت 5
از طریق سایت هنوز این داده را برایش فیلدی تعریف نشده
و دوم اینکه : اگر مقدور است این امکان را برای متد زیر هم در نظر بگیرید. کاربردش فراوان خواهد بود.

با تشکر از خدمات عالی سایت شما عزیزان
sendAdvancedNotifToUser( , , );

پاسخ:
سلام
بله این قسمت فعلا از طریق api در دسترس هست و امکان ارسال آن از سایت را هم اضافه خواهیم کرد.
در جیسونی که ارسال می کنید می توانید کلیدهای مربوط به ارسال داده به اکتیویتی را استفاده کنید و در واقع این امکان الان هم وجود دارد.
کاربر
۱۳ آبان ۹۶ ، ۰۶:۳۱
سلام
میشه برای قسمت 5
و متد sendAdvancedNotifToUser
یک مثال بزنید که چطور میتونیم به یه اکتیویتی مقدار یه استرینگ رو پوت کنیم. با نمایش یک نوتیفیکیشن؟
در سورس گیت هاب شما هم نمونه ای ندیدم.
یا به هر روشی که شما مد نظر دارید بهتره، یه مثال واقعی آدرس بدین.

ممنون از پشتیبانی و خدمات شما عزیزان
پاسخ:
سلام
نمونه کد ارسال اعلان ساده و جیسون به یک نصب از برنامه در این لینک مربوط به نمونه کد اندروید استادیو و همین طور سمپل های دیگر گیت هاب وجود دارد.
برای ارسال اعلان پیشرفته، جیسون اعلان پیشرفته را بصورت یک استرینگ ایجاد کنید و تابع زیر را صدا بزنید:
(Pushe.sendAdvancedNotifToUser (context, devicePid, advancedNotifStr 

که advancedNotifStr همان جیسون مربوط به اعلان پیشرفته است که آن را به صورت یک رشته در آورده اید.

نمونه جیسون برای ارسال اعلان پیشرفته با امکان باز کردن اکتویتی و ارسال استرینگ به اکتویتی هم بصورت زیر است:

{
"applications": [
"YOUR_APP_PACKAGE"
],
"notification": {
"title": "عنوان",
"content": "تیتر",
"big_title": "تیتر کامل",
"big_content": "متن بزرگ",
"image": "http://url/name.png",
"icon": "http://url/name.png",
"ticker": "متن نوار اعلان",
"notif_icon": "file download",
"sound_url": "http://panel.pushe.co/assets/voices/2.mp3",
"visibility": true,
"led_color": "-8206336",
"show_app": true,
"led_on": 300,
"led_off": 500,
"action": {
"url": "",
"action_type": "T",
"action_data": "MyActivity",
"pushe_activity_extra": "the string you want to send to your activity"
}
}
}

nmotaghed
۱۷ آبان ۹۶ ، ۱۶:۳۱
با عرض سلام ..برنامه من قبل از پروگارد به درستی کار میکنه روی هر گوشی از اندروید 2.8 به بالا
اما بعد از پروگارد برنامه در هنگام بالا اومدن تو اکتیویتی اول ارور میده و برنامه بسته میشه البته به عنوان مثال : توی گوشی سامسونگ با اندروید 4 و هاووی با اندروید 5 هیچ مشکلی نداره اما روی گوشی نوت 4 و شیامی با اندروید 7 و 6 موقع بالا اومدن ارور میده که من با حذف این دستور :Pushe.initialize(this,true); فهمیدم مشکل از اینه..میخواستم لطف کنید بگین بجز موارد ی که تو اموزش گداشتین چیز دیگه هست به پروگارد اضافه کنم؟..البته امروز با کتابحانه 1.3.3 هم چک کردم بازم همون ارور رو میده .
پاسخ:
سلام
لطفا به پشتیبانی پوشه ایمیل بزنید و مشکلتان را توضیح بدهید.
reza ramesh
۲۴ دی ۹۶ ، ۰۰:۲۴
با سلام 


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

و از دستور زیر استفاده میکنم




if (Pushe.isPusheInitialized(this)) {
    Pushe.sendSimpleNotifToUser(this, "pid_a0e3-82ac-a0", "title", "content");
}



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

ممنون از تیم پوشه

پاسخ:
سلام

باتشکر از پیام شما

پارامتر دوم pusheId دستگاهی است که می خواهید اعلان را به آن ارسال کنید و در کد بالا شما pusheId مثالی که در راهنمای پنل هست را استفاده کرده اید. بجای آن باید pusheId دستگاهی که برنامه شما روی آن نصب هست و می خواهید به آن اعلان بفرستید را وارد کنید.  pusheId هر دستگاه را با دستور ()Pushe.getPusheId می توانید دریافت کنید. اگر pusheId درستی را وارد می کنید، لطفا به پشتیبانی پوشه ایمیل بزنید و ‬pusheId مورد استفاده تان را بفرستید تا مشکل را بررسی کنیم.
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی