بازگشت

نمایش نوتیفیکیشن در sdk بالاتر از 33 – B4A

اگر SDK برنامتون از 33 به بالاتر باشه برای نمایش نوتیفیکیشن باید ران تایم پرمیشن(RuntimePermissions) بدید
که میشه مثل کد زیر

				
					'Make sure that targetSdkVersion >= 33
Private Sub CheckAndRequestNotificationPermission As ResumableSub
    Dim p As Phone
    If p.SdkVersion < 33 Then Return True
    Dim ctxt As JavaObject
    ctxt.InitializeContext
    Dim targetSdkVersion As Int = ctxt.RunMethodJO("getApplicationInfo", Null).GetField("targetSdkVersion")
    If targetSdkVersion < 33 Then Return True
    Dim NotificationsManager As JavaObject = ctxt.RunMethod("getSystemService", Array("notification"))
    Dim NotificationsEnabled As Boolean = NotificationsManager.RunMethod("areNotificationsEnabled", Null)
    If NotificationsEnabled Then Return True
    Dim rp As RuntimePermissions
    rp.CheckAndRequest(rp.PERMISSION_POST_NOTIFICATIONS)
    Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) 'change to Activity_PermissionResult if non-B4XPages.
    Log(Permission & ": " & Result)
    Return Result
End Sub

				
			

که ارل گفته اگر پروژتون B4A هست اون بخش

				
					 Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) 'change to Activity_PermissionResult if non-B4XPages.

				
			

رو به شکل پائینی عوض کنید

				
					 Wait For Activity_PermissionResult (Permission As String, Result As Boolean) 'change to Activity_PermissionResult if non-B4XPages.

				
			

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

				
					  Wait For (CheckAndRequestNotificationPermission) Complete (HasPermission As Boolean)
  If HasPermission Then
    Dim n As Notification
    n.Initialize
    n.Icon = "icon"
    n.SetInfo("This is the title", "and this is the body.", Splash) 'Change Main to "" if this code is in the main module.
    n.Notify(1)
  Else
    Log("no permission")
    ToastMessageShow("no permission", True)
  End If

				
			

ولی بعضی مواقع این کافی نیست و ممکنه درست جواب نده اگر جواب نداد میتونید از بخش منیفست(Manifest) دستی اضاف کنید اون موقع این مشکل حل میشه دکمه اجازه نوتیفیکیشن میاد بالا

				
					AddPermission(android.permission.POST_NOTIFICATIONS)

				
			

نوتیفیکیشن گوشی چیست؟

فرض می‌کنیم شما از یک برنامه یا اپلیکیشن برای سفارش یک بسته استفاده کرده و سفارش خود را تکمیل کرده‌اید پس از آن از برنامه خارج شده‌اید. در آن سو شرکتی که شما روی پلتفرم آن سفارش ثبت کرده‌اید، بسته را آماده کرده و برای شما ارسال می‌کند. در این زمان است که آن شرکت می‌خواهد به شما اطلاع رسانی کند که بسته شما آماده ارسال است اما شما برنامه را بسته‌اید و در این مرحله نوتیفیکیشن (NOTIFICATION) به کمک شما می‌آید. پوش نوتیفیکیشن به شما در قسمت اعلان‌ها یا همان نوتیفیکیشن پیامی نشان می‌دهد که شما را از تغییر حالت سفارش شما از حالت آماده‌سازی به آماده ارسال مطلع سازد.

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

معنی notification در گوشی و به زبان فارسی اعلان است و منظور از این اعلان در اپلیکیشن‌ها و تکنولوژی وب همان اعلان‌هایی است که به صورت یک پیام کوتاه یا تصویر در قسمت نوتیفیکیشن گوشی به شما می‌رسد.

نوتیفیکیشن‌ها با کارایی‌های مختلف از جمله اطلاع رسانی یا تبلیغ و … برای شما ارسال می‌شوند. به طور مثال اگر شخصی درخواست دوستی در اپلیکیشن اینستاگرام برای شما ارسال کند، این درخواست برای شما ابتدا به صورت نوتیفیکیشن در قسمت اعلان‌ها به نمایش در می‌آید.

اگر SDK برنامتون از 33 به بالاتر باشه برای نمایش نوتیفیکیشن باید ران تایم پرمیشن(RuntimePermissions) بدید
که میشه مثل کد زیر

				
					'Make sure that targetSdkVersion >= 33
Private Sub CheckAndRequestNotificationPermission As ResumableSub
    Dim p As Phone
    If p.SdkVersion < 33 Then Return True
    Dim ctxt As JavaObject
    ctxt.InitializeContext
    Dim targetSdkVersion As Int = ctxt.RunMethodJO("getApplicationInfo", Null).GetField("targetSdkVersion")
    If targetSdkVersion < 33 Then Return True
    Dim NotificationsManager As JavaObject = ctxt.RunMethod("getSystemService", Array("notification"))
    Dim NotificationsEnabled As Boolean = NotificationsManager.RunMethod("areNotificationsEnabled", Null)
    If NotificationsEnabled Then Return True
    Dim rp As RuntimePermissions
    rp.CheckAndRequest(rp.PERMISSION_POST_NOTIFICATIONS)
    Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) 'change to Activity_PermissionResult if non-B4XPages.
    Log(Permission & ": " & Result)
    Return Result
End Sub

				
			

که ارل گفته اگر پروژتون B4A هست اون بخش

				
					 Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) 'change to Activity_PermissionResult if non-B4XPages.

				
			

رو به شکل پائینی عوض کنید

				
					 Wait For Activity_PermissionResult (Permission As String, Result As Boolean) 'change to Activity_PermissionResult if non-B4XPages.

				
			

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

				
					  Wait For (CheckAndRequestNotificationPermission) Complete (HasPermission As Boolean)
  If HasPermission Then
    Dim n As Notification
    n.Initialize
    n.Icon = "icon"
    n.SetInfo("This is the title", "and this is the body.", Splash) 'Change Main to "" if this code is in the main module.
    n.Notify(1)
  Else
    Log("no permission")
    ToastMessageShow("no permission", True)
  End If

				
			

ولی بعضی مواقع این کافی نیست و ممکنه درست جواب نده اگر جواب نداد میتونید از بخش منیفست(Manifest) دستی اضاف کنید اون موقع این مشکل حل میشه دکمه اجازه نوتیفیکیشن میاد بالا

				
					AddPermission(android.permission.POST_NOTIFICATIONS)

				
			

نوتیفیکیشن گوشی چیست؟

فرض می‌کنیم شما از یک برنامه یا اپلیکیشن برای سفارش یک بسته استفاده کرده و سفارش خود را تکمیل کرده‌اید پس از آن از برنامه خارج شده‌اید. در آن سو شرکتی که شما روی پلتفرم آن سفارش ثبت کرده‌اید، بسته را آماده کرده و برای شما ارسال می‌کند. در این زمان است که آن شرکت می‌خواهد به شما اطلاع رسانی کند که بسته شما آماده ارسال است اما شما برنامه را بسته‌اید و در این مرحله نوتیفیکیشن (NOTIFICATION) به کمک شما می‌آید. پوش نوتیفیکیشن به شما در قسمت اعلان‌ها یا همان نوتیفیکیشن پیامی نشان می‌دهد که شما را از تغییر حالت سفارش شما از حالت آماده‌سازی به آماده ارسال مطلع سازد.

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

معنی notification در گوشی و به زبان فارسی اعلان است و منظور از این اعلان در اپلیکیشن‌ها و تکنولوژی وب همان اعلان‌هایی است که به صورت یک پیام کوتاه یا تصویر در قسمت نوتیفیکیشن گوشی به شما می‌رسد.

نوتیفیکیشن‌ها با کارایی‌های مختلف از جمله اطلاع رسانی یا تبلیغ و … برای شما ارسال می‌شوند. به طور مثال اگر شخصی درخواست دوستی در اپلیکیشن اینستاگرام برای شما ارسال کند، این درخواست برای شما ابتدا به صورت نوتیفیکیشن در قسمت اعلان‌ها به نمایش در می‌آید.

دیدگاه ها 0

درباره این مطلب دیدگاهی ارسال کنید