ماژول HMS پوشه
مقدمه
همانطور که میدانیم پوشه برای ارسال نوتیفیکیشن به دستگاه اندرویدی از Firebase (Google play services) استفاده میکند.
مدتیست برخی برندها همچون هواوی به دلیل تحریم توسط گوگل دیگر امکان استفاده از Google services را ندارند.
با توجه به اینکه Google play services در این گوشیها وجود ندارد، فایربیس نیز کار نخواهد کرد و امکان ارسال پوش از طریق پوشه با استفاده از فایربیس به این دستگاهها ممکن نخواهد بود.
HMS
هواوی از سرویسی به نام HMS (Huawei mobile services) برای رفع این کمبود استفاده میکند. مجموعهی HMS دارای سرویسی به نام PushKit است که مشابه Firebase cloud messaging مسئولیت ارسال پوشنوتیفیکیشن به دستگاه را بر عهده دارد.
note
لایبرری پوشه در نسخهی ۲.۳.۰ سرویس ارسال نوتیفیکیشن فایربیس را بعنوان یک ماژول جدا استفاده میکند (pushe:fcm).
در نسخهی
۲.۴.۰
نیز ماژول جدیدی به نام
hms
به مجموعه اضافهشد. این ماژول مسئولیت ارسال پوشه به دستگاههایی که
GPlay
ندارند اما در عوض
HMS Core (مشابه Google play services برای HMS)
دارند، را بعهده دارد.
نحوهی کار Hms و Fcm
پوشه هنگام رجیستر وجود Google play services و Hms Core را بررسی کرده و هر کدام که ممکن باشد بعنوان سرویس دریافت پوشنوتیفیکیشن استفاده خواهد شد. (در صورتی که هردو موجود باشند، اولویت قابل تغییر است و پیشفرض با fcm خواهد بود)
افزودن ماژول
در کنار ماژول
base
برای استفاده از سرویس هواوی در پوشه بایستی ماژول
hms
را نیز اضافه کنید.
allprojects {
repositories {
// Needed for Huawei libraries
maven {url 'https://developer.huawei.com/repo/'}
}
}
dependencies {
def pushe_version = '2.5.0'
implementation("co.pushe.plus:hms:$pushe_version")
}
Pushe_Token
و Huawei appid
برای استفاده از سرویس فایربیس پوشه بایستی در مانیفست pushe_token
قرارداده شود و این کلید برای تمامی حالات نیاز است.
اطلاعات بیشتر
برای استفاده از سرویس پوشه در گوشیهای هواوی (وابسته به HMS) نیاز به کلیدی به نام appid
دارید.
بدست آوردن کلید appid
برای هواوی
در حال حاضر کنسول هواوی برای کاربران ایرانی قابل استفاده نیست و برای ثبت نام نیاز به شماره تلفن غیرایرانی دارید. به همین دلیل برای استفاده از سرویس هواوی در پوشه بایستی به پشتیبانی پوشه (hi [at] pushe.co) ایمیل بزنید و کلید مورد نظر را دریافت کنید.
هنگام درخواست موارد زیر را بایستی ضمیمه کنید:
مطابق این آموزش هش SHA-256 مربوط به SignKey اپلیکیشن را تولید کنید.
Package name برنامه
افزودن Manifest
<manifest>
<application>
<!-- Pushe TOKEN -->
<meta-data
android:name="pushe_token"
android:value="${PUSHE_TOKEN}" />
<!-- HMS -->
<meta-data
android:name="com.huawei.hms.client.appid"
android:value="appid=${app_id}" />
</application>
</manifest>
به جای
${PUSHE_TOKEN}
توکن پوشه را قرار داده و به جای
${app_id}
نیز
app id
پروژهی هواوی را قرار دهید.
اجرای برنامه
پس از انجام موارد لازم، برنامه را اجرا کنید و لاگکت را بررسی کنید.
تست روی گوشی هواوی
برای اینکه رجیستریشن هنگام اجرای برنامه انجام گیرد نیاز است که آنرا با کلیدی که ثبت کردید امضا کنید (در حالت دیباگ از این کلید استفاده نمیشود)
پرمیشن REQUEST_INSTALL_PACKAGES
در نسخهی 2.5.0
در صورت استفاده از ماژول hms
پرمیشن REQUEST_INSTALL_PACKAGES
به برنامه اضافه خواهد شد.
این پرمیشن توسط لایبرری huawei-pushkit
به برنامه اضافه میشود و درنسخهی 2.4.2 از ماژول برداشته خواهد شد.
در صورتی که مارکت مورد هدف از این پرمیشن ایراد گرفت میتوانید آنرا از مانیفست اصلی حذف کنید
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" tools:node="remove"/>
نکته: آیا حذف این پرمیشن مشکلی ایجاد میکند؟ خیر (پاسخ توسعهدهندهی هواوی در استکاورفلو)
- دلیل اضافهشدن این پرمیشن چیست؟
ماژول
pushkit
نیاز بهHMS-Core
دارد. در صورتی که این اپلیکیشن وجود نداشته باشد این پرمیشن به نصب این اپلیکیشن کمک خواهد کرد.