نصب چشمک

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

ابتدا نیاز است تا آخرین نسخه کتابخانه چشمک را که مخصوص Basic4Android می‌باشد را از اینجا دریافت کنید.

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

سپس فایل دانلود شده را extract کرده و محتویات آن را در پوشه Libraries کتابخانه Basic4Android که در محل نصب آن قرار دارد کپی کنید. در نرم افزار B4A، قسمت Libraries کلیک راست کرده و گزینه Refresh‍‍‍‍‍ را بزنید بعد Cheshmak در لیست ظاهر می‌شود سپس آن را انتخاب کنید.

۳. افزودن Manifest

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

AddManifestText( <permission android:name="${applicationId}.permission.C2D_MESSAGE" android:protectionLevel="signature" />)
 AddActivityText(Main,<meta-data android:name="cheshmakPush" android:value="openActivityOnPush"/>​)
 AddServiceText(MyService,<meta-data android:name="cheshmakPush" android:value="startServiceOnPush"/>​)
 AddPermission(${applicationId}.permission.C2D_MESSAGE)
 AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)
 AddPermission(android.permission.ACCESS_NETWORK_STATE)
 AddApplicationText(<meta-data
 android:name="com.google.android.gms.version"
 android:value="@integer/google_play_services_version" />
<service
 android:name="me.cheshmak.android.sdk.core.push.CheshmakPushRegistration"
 android:exported="false" />
 <service
 android:name="me.cheshmak.android.sdk.core.push.CheshIDListenerService"
 android:exported="false" >
 <intent-filter>
 <action android:name="com.google.android.gms.iid.InstanceID" />
 </intent-filter>
 </service>
 <service android:name="me.cheshmak.android.sdk.core.push.CheshGcmListenerService" />
<receiver android:name="com.google.android.gms.gcm.GcmReceiver"
 android:exported="true"
 android:permission="com.google.android.c2dm.permission.SEND" >
 <intent-filter>
 <action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="me.cheshmak.android.sdk.core" />
 </intent-filter>
 </receiver>
 <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" />
 <receiver
 android:name="me.cheshmak.android.sdk.core.push.GcmBroadcastReceiver"
 android:permission="com.google.android.c2dm.permission.SEND" >
 <intent-filter>
 <action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
 </receiver>
<service
 android:name="me.cheshmak.android.sdk.core.network.EventSendService"
 android:enabled="true" />
 <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:name="me.cheshmak.android.sdk.core.task.WifiTask"
 android:exported="true"
 android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE" >
 <intent-filter>
 <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
 </intent-filter>
 </service>
 <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" />)
'End of default text.


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

در فایل Starter متد Process_Globals شی چشمک را به صورت زیر ایجاد نمایید.

​Dim chesh As Cheshmak 

جهت استفاده از چشمک، کد زیر را در متد Service_Create وارد نمایید.

​chesh.initTracker("APP_KEY")

مقدار APP_KEY را در تنظیمات پنل چشمک دریافت کنید.

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

کد برنامه نمونه

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

 

کسب درآمد

برای درآمدزایی از طریق نمایش تبلیغات کافی است در منوی تنظیمات، بر روی درآمدزایی کلیک کرده و انواع تبلیغات را فعال کنید.

برای فعال سازی دریافت تبلیغات بنری لازم است مراحل زیر را انجام دهید:
۱. وارد ماژول starter در محیط بیسیک4اندروید شوید و متغیر زیر را در قسمت Process_Globals تعریف نمایید

​
Sub Process_Globals
   
  Dim adv As CheshmakAdv
End Sub
 

۲. درون متد Service_Start فعال سازی تبلیغات بنری را انجام دهید:

​

Sub Service_Start (StartingIntent As Intent)
  
  adv.enableBannerAds()
  adv.TestMode=True
End Sub
 

۳. وارد Designer پروژه خود شوید و از منوی Add View>CustomView ویو Banner را انتخاب کنید تا به Layout تان اضافه گردد.

۴. ای بهتر نمایش داده شدن بنر در بخش Desinger Script همان Layout سعی بفرمایید با متد setLetAndRight دیواره های چپ و راست بنر را به دو طرف بچسبانید. و همچنین میتوانید به متد Top یا VerticalCenter موقعیت بنر را از نظر بالا یا پایین بودن تعیین کنید.
کد نمونه بنر در بالای صفحه:

​
Banner1.SetLeftAndRight(0,100%x)
Banner1.Top=0
 

کد نمونه بنر در وسط صفحه :

​
Banner1.SetLeftAndRight(0,100%x)
Banner1.VerticalCenter=50%y
 

اکنون با اجرا کردن برنامه، بنر ها در مکانی که خودتان در Layout مورد نظر تعیین کرده اید نمایش داده خواهند شد.
در نهایت کافی است اکتیویتی که در آن بنر را برای نمایش قرار داده اید مقدار دهی کنید کد نمونه :

​
Sub Activity_Create(FirstTime As Boolean)
  'Do not forget to load the layout file created with the visual designer. For example:
  Activity.LoadLayout("banner")
End Sub
 
  • نکته مهم : حتما در هنگام ریلیز برنامه مقدار TestMode را به false تغییر دهید تا از دریافت تبلیغات تستی به کاربرانتون جلوگیری شود.

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

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

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

جهت باز شدن اکتیویتی بعد از ارسال پوش از منوی 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
 

ارسال خطاها

خطاهای برنامه ، بخش اجتناب ناپذیر اما قابل مدیریت جهت بهتر کردن محصول می باشد .با توجه به اینکه تعداد زیادی دستگاه و نسخه اندروید وجود دارد اطلاع از خطاهای موجود در برنامه کمک شایانی به بهبود عملکرد و درنتیجه رضایت کاربران دارد .چشمک با در اختیار گذاشتن توابعی برنامه نویس را قادر میسازد تا از خطاهای موجود در برنامه و حتی خطاهایی که منجر به بسته شدن آن میشود اطلاع حاصل کند .این گزارش در پنل چشمک قسمت خطاها قابل مشاهده میباشد .شما میتوانید برای خطاهایی که درون برنامه اتفاق می افتد یک مقدار عنوان تعریف کنید تا بعد از اینکه کد شما obfuscate شد به راحتی بتوانید خطای مورد نظر را در گزارش خطاهای پنل مشاهده نمایید. شما میتوانید با استفاده از سه تابع trackException , trackFATALException و trackLabeledException خطاها را مطابق نمونه های زیر ارسال نمایید .

نکته

تمام خطاهای که موجب Crash‍ برنامه میشوند به صورت خودکار ارسال میگردند .ارسال این نوع خطاها در حالت release امکان پذیر است .

​
Try
 Dim i As Int = "wrong value"
 Catch
 chesh.trackLabeledException("exception_name",LastException)
 End Try
 
​
chesh.trackFATALException("exception_name",Error)
​
chesh.trackException(Error)
 

گزارش صفحات برنامه

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

در صورت استفاده از Custom View میتوانید از دو تابع startView و stopView استفاده نمایید.

​
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("layout")
chesh.startView("Main")

End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)
chesh.stopView("Main")
End Sub
 

استفاده از تگ ها

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

با استفاده از دو تابع addTag و addTags تگ های مورد نیاز خود را مانند مثال زیر اضافه کنید

 

​
chesh.addTag("tag1")
Dim list As List
 list.Initialize
 list.Add("tag1")
 list.Add("tag2")
 list.Add("tag3")
 list.Add("tag4")
 chesh.addTags(list)
 

تگ ها را میتوانید با استفاده از توابع deleteTag ،‍ deleteTags و deleteAllTags را حذف کنید.

​
chesh.deleteTag("tag1")
Dim list As List
list.Initialize
list.Add("tag1")
list.Add("tag2")
list.Add("tag3")
list.Add("tag4")
chesh.addTags(list)
chesh.deleteAllTags()