نصب چشمک

۱. دریافت کتابخانه چشمک

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

دانلود پروژه نمونه

۲. افزودن کتابخانه چشمک

شما باید این فایل را به کتابخانه های B4A اضافه کنید. برای این موضوع فایل دانلود شده را در مسیر کتابخانه های اضافی کپی کنید. ( این آموزش با نرم افزار B4A v8.80 تهیه و تست شده است)

 

۳. افزودن Manifest

از منوی Project گزینه Manifest Editor را انتخاب کرده و در پنجره باز شده مقادیر زیر را به محتوای فایل Manifest خود اضافه کنید. و متناسب با توضیحات بعدی فایل Manifest خود را شخصی سازی کنید. 

AddPermission(android.permission.ACCESS_NETWORK_STATE)
AddPermission(android.permission.ACCESS_WIFI_STATE)
AddPermission(android.permission.CHANGE_WIFI_STATE)
AddPermission(android.permission.READ_PHONE_STATE)
AddPermission(android.permission.WAKE_LOCK)
AddPermission(android.permission.RECEIVE_BOOT_COMPLETED)
AddPermission(android.permission.INTERNET)
AddPermission(android.permission.VIBRATE)
AddPermission(com.google.android.c2dm.permission.RECEIVE)


AddApplicationText(
<meta-data
   android:name="com.google.android.gms.ads.AD_MANAGER_APP"
   android:value="true"/>
<meta-data
   android:name="com.google.android.gms.version"
   android:value="@integer/google_play_services_version" />
<service android:name="com.google.firebase.components.ComponentDiscoveryService" >
   <meta-data
      android:name="com.google.firebase.components:com.google.firebase.iid.Registrar"
      android:value="com.google.firebase.components.ComponentRegistrar" />
</service>
<service
   android:name="me.cheshmak.android.sdk.core.push.MyFirebaseMessagingService"
   android:stopWithTask="false">
   <intent-filter>
      <action android:name="com.google.firebase.MESSAGING_EVENT" />
   </intent-filter>
</service>
<service
   android:name="com.google.firebase.messaging.FirebaseMessagingService"
   android:exported="true">
   <intent-filter
      android:priority="-500">
      <action
         android:name="com.google.firebase.MESSAGING_EVENT" />
   </intent-filter>
</service>
<receiver android:name="me.cheshmak.android.sdk.core.receivers.AlarmReceiver" >
   <intent-filter>
      <action android:name="android.intent.action.TIME_SET" />
      <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
      <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
      <action android:name="android.intent.action.DELETE" />
      <action android:name="me.cheshmak.intent.action.SEND_EVENT" />
   </intent-filter>
</receiver>
<receiver android:name="me.cheshmak.android.sdk.core.receivers.RemoteReceiver">
   <intent-filter>
      <action android:name="CHESH_REMOTE_DATA_ACTION" />
   </intent-filter>
</receiver>
<receiver android:name="me.cheshmak.android.sdk.core.receivers.LocationReceiver" />
<service
   android:name="me.cheshmak.android.sdk.core.network.NotificationService"
   android:enabled="true" />
<receiver
   android:name="me.cheshmak.android.sdk.core.network.AppStartReceiver"
   android:enabled="true">
   <intent-filter>
      <action android:name="me.cheshmak.start" />
      <action android:name="android.intent.action.BOOT_COMPLETED" />
      <action android:name="android.intent.action.QUICKBOOT_POWERON" />
   </intent-filter>
</receiver>
<receiver android:name="me.cheshmak.android.sdk.core.push.MessageHandler" />
<receiver android:name="me.cheshmak.android.sdk.core.receivers.AppChangeListener">
   <intent-filter android:priority="10000">
      <action android:name="android.intent.action.PACKAGE_INSTALL" />
      <action android:name="android.intent.action.PACKAGE_ADDED" />
      <action android:name="android.intent.action.PACKAGE_REMOVED" />
      <action android:name="android.intent.action.PACKAGE_REPLACED" />
      <data android:scheme="package" />
   </intent-filter>
</receiver>
<service
   android:exported="false"
   android:name="me.cheshmak.android.sdk.core.job.FirebaseJobService">
   <intent-filter>
      <action android:name="com.cheshmak.jobdispatcher.ACTION_EXECUTE"/>
   </intent-filter>
</service>
<service
   android:name="com.google.firebase.iid.FirebaseInstanceIdService"
   android:exported="true">
   <intent-filter
      android:priority="-500">
      <action
         android:name="com.google.firebase.INSTANCE_ID_EVENT" />
   </intent-filter>
</service>
<receiver
   android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
   android:permission="com.google.android.c2dm.permission.SEND"
   android:exported="true">
   <intent-filter>
      <action
         android:name="com.google.android.c2dm.intent.RECEIVE" />
   </intent-filter>
</receiver>
<activity
   android:name="me.cheshmak.android.sdk.core.ui.InstallActivity"
   android:launchMode="singleTop"
   android:theme="@style/Theme.Ches_Transparent" />
<activity
   android:name="me.cheshmak.android.sdk.core.ui.DialogActivity"
   android:launchMode="singleTop"
   android:layerType="software"
   android:theme="@style/Theme.Ches_Transparent" />

)

در نظر داشته باشید پرمیژن های زیر رو می توانید در صورت نیاز اضافه کنید

این پرمیژن ها به صورت اختیاری می‌باشد و موجب هدفمندی بیشتر تبلیغات و افزایش درآمد زایی می‌شود.

AddPermission(android.permission.VIBRATE)
AddPermission(android.permission.ACCESS_CORSE_LOCATION) ​


۴. فراخوانی چشمک

ابتدا از لیست ماژول ها، ماژول b4aCheshmak و FirebaseNotifications  و FirebaseAdMob را فعال کنید.

 

در فایل Starter برنامه خود، تغییرات زیر را اضافه کنید (عکس نمونه در آخر این قسمت)

#Region  Service Attributes 
	#StartAtBoot: True
	#ExcludeFromLibrary: True
	#StartCommandReturnValue: android.app.Service.START_STICKY
#End Region

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
    
	Dim cheshmak As Cheshmak
End Sub

Sub Service_Start (StartingIntent As Intent)
	cheshmak.init("MY_APP_KEY_FROM_PANEL")
End Sub

مقدار APP_KEY را در تنظیمات پنل چشمک و در منوی برنامه ها دریافت کنید و با پارامتر ورودی تابع جایگزین نمایید.

 

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

پوش نوتیفیکیشن

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

باز شدن اکتیویتی بعد از ارسال پوش

جهت باز شدن اکتیویتی بعد از ارسال پوش از منوی Project روی Manifest Editor را انتخاب کرده و خط زیر را به آن اضافه کنید.

 

​AddActivityText(REPLACE_WITH_ACTIVITY_NAME,<meta-data android:name="cheshmakPush" android:value="openActivityOnPush"/>​)

نام اکتیویتی مورد نظر را با REPLACE_WITH_ACTIVITY_NAME عوض نمایید .
با استفاده از کد زیر میتوانید دیتای ارسالی از پنل را در اکتیویتی مورد نظر را دریافت کنید.

​Sub Activity_Create(FirstTime As Boolean)

 Activity.LoadLayout("Layout1")

 Dim intent As Intent
 intent =Activity.GetStartingIntent()
 Log(intent.GetExtra("me.cheshmak.data")) 'Read Cheshmak Data


End Sub
 

باز شدن سرویس بعد از ارسال پوش

جهت باز شدن سرویس بعد از ارسال پوش از منوی Project روی Manifest Editor را انتخاب کرده و خط زیر را به آن اضافه کنید.

​AddServiceText(REPLACE_WITH_SERVICE_NAME,<meta-data  android:name="cheshmakPush" android:value="startServiceOnPush"/>​)

نام سرویس مورد نظر را با REPLACE_WITH_SERVICE_NAME عوض نمایید .
با استفاده از کد زیر میتوانید دیتای ارسالی از پنل را در سرویس مورد نظر را دریافت کنید.


Sub Service_Start (StartingIntent As Intent)
 Log(StartingIntent.GetExtra("me.cheshmak.data"))
End Sub

خطاهای رایج

Maven artifact not found

ممکن است بعد از اضافه کردن کتابخانه چشمک، با خطای  Maven artifact not found مواجه شوید. این خطا به این معنا است که نرم افزار b4a نمی تواند کتابخانه های لازم را برای کامپایل برنامه شما پیدا کند. برای حل این مشکل  به منوی Tools و سپس SDK Manager بروید ( به دلیل تحریم آی پی های ایران بهتر است از نرم افزار های لازم استفاده کنید) و کتابخانه های لازم را جستجو و نصب کنید.