رفتن به مطلب

آموزش ساخت Notification برای تبلیغات در برنامه به صورت آنلاین


مهدی ایزدی

ارسال‌های توصیه شده

به نام خدا

سلام دوستان

خب بچه ها در مورد Notification به صورت تبلیغات سوال کرده بودن

تیکه کدهاش رو براتون میزارم + یک فیلم آموزش حدود 5 دقیقه از توضیحات کدهایی که براتون نوشتم...

 

دانلود فیلم آموزشی توضیحات کدهای زیر

 

رمز عبور: Basic4Android.org

 

توی روشی که ما پیش رفتیم برای هر برنامه بیش تر از یک بار Notification برای هر کاربر نمایش داده نمیشه

و باعث اذیت شدن کاربر و حذف کردن برنامه هم نمیشه :write:

حجم فوق العاده کمی رو هم از اینترنت مصرف میکنه

 

این کدها توی یک سرویس باید باشن:

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

Sub Process_Globals
Dim timer1 As Timer
Dim httpjob1 As HttpJob
Dim httpjob2 As HttpJob
Dim noti As Notification
Dim packagename As String
End Sub
Sub Service_Create
httpjob1.Initialize("httpjob1",Me)
httpjob2.Initialize("httpjob2",Me)
noti.Initialize
noti.Icon = "icon"
noti.Light = True
noti.OnGoingEvent = True
noti.autocancel = True
End Sub

Sub Service_Start (StartingIntent As Intent)
timer1.Initialize("timer1",300000)
timer1.Enabled = True
End Sub

Sub Service_Destroy

End Sub


Sub timer1_tick
    Try
    httpjob2.Download("http://mehdiizadi.persiangig.com/ghiamat/id.html")
    Catch
    
    End Try
End Sub

Sub JobDone(job As HttpJob)
    If job.Success Then
        If job.JobName = "httpjob1" Then
            Dim value As String = job.GetString
            Try
                Dim part() As String = Regex.Split("#",value)
                Dim oldvalue As String = File.ReadString(File.DirInternal,"soon.iz")
                packagename = part(0)
                If oldvalue.Contains(part(0)) = False Then
                File.WriteString(File.DirInternal,"soon.iz",packagename)
                noti.SetInfo("خبر جدید",part(1),com)
                noti.Notify(1)
                End If
            Catch
            
            End Try
                
        Else If job.JobName = "httpjob2" Then
            If job.GetString.Contains("start") Then
            httpjob1.Download("http://mehdiizadi.persiangig.com/ghiamat/check.html")
            End If
        End If
    Else
    
    End If
End Sub

این هم توی یک Activity به نام com :

#Region Activity Attributes
    #FullScreen: False
    #IncludeTitle: True
#End Region

Sub Process_Globals

End Sub


Sub Globals
    Dim market As Intent, uri As String
End Sub


Sub Activity_Create(FirstTime As Boolean)

End Sub


Sub Activity_Resume
uri="bazaar://details?id="&commingsoon.packagename.SubString(1)
market.Initialize(market.ACTION_VIEW,uri)
StartActivity(market)
    Activity.Color = Colors.Transparent
    Activity.Finish
End Sub


Sub Activity_Pause (UserClosed As Boolean)

End Sub

این رو هم بگم فقط کسایی میتونن از PersianGIG استفاده کنند که Account های قدیمی رو داشته باشن

Account های جدید PersianGIG لینک هارو به صورت دانلود نشون میدن و نمیتنید ازشون در این راستا استفاده کنید

میتونید از هاستینگ های دیگه استفاده کنید :S

راستی: برای اینکه Notification کار نکنه هم در ابتدای انتشار میتونید به جای مقدار start از مقدار stop درفایل html خودتون استفاده کنید...

 

توی Activity که اسمش com هست هم در Manifest Editor برید و این کد رو اضافه کنید :

SetActivityAttribute(com,android:theme,@android:style/Theme.Translucent.NoTitleBar) 

یک نفر نمونه سورس کاملتر و بهترش رو آماده کنه و قرار بده لطفا :gol:

 

موفق باشید

Basic4Android.org

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • پاسخ 73
  • ایجاد شده
  • آخرین پاسخ

اقا ایزدی فقط یه چیزی چرا از

uri="bazaar://details?id="&commingsoon.packagename.SubString(1)

برام از commingsoon خطا میگیره؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

اگه پرشین گیگ جواب نداد

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

http://farsinam.ir/

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اقا ایزدی فقط یه چیزی چرا از

uri="bazaar://details?id="&commingsoon.packagename.SubString(1)

برام از commingsoon خطا میگیره؟

 

فیلم آموزش واضح هست که

commingsoon اسم سرویس ما هست ... :S

 

تکرار میکنم هااا...

منتظر سورس کامل ترش و یا آموزش تصویری با توضیحات کامل ترش توسط خود کاربرهای انجمن هستم :eynak:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

:))

اقای ایزدی خودم بعد اینکه پست زدم فهمیدم چه سوتی دادم

هر چیم گشتم نتونستم پاکش کنم

شرمنده :D

لینک ارسال
به اشتراک گذاری در سایت های دیگر

مثل اینکه چند نفر از دوستان دقیقا متوجه ادامه کار این Notification نشدن ...

توضیحات:

ببینید ما توسط این کد و این روش میتوینم برای تمامی کاربرهایی که این برنامه رو نصب دارن در هر موقع از زمان که دلمون بخواد

Notification رو ارسال کنیم

هر PackageName (تبلیغ هر برنامه) فقط یک بار برای هر کاربر نمایش داده میشه

فرض کنید شما الان برنامه ی مثلا نیترو شارژ رو تبلیغ کردید

1 روز بعد میتونید اون کد check.html رو عوض کنید به یک نام و PackageName جدید

حالا برنامه میاد PackageName قبلی که ثبت شده رو میخونه و با PackageName جدید مقایسه میکنه

از مثل هم نبودن که نیستن ... میاد Notification جدید رو نمایش میده

بعدی دوباره اگه دوست داشتید میتونید فرداش اون تبلیغ برنامه قبلی رو قرار بدید ...

دو سه ساعت دیگه واسه هفت روز از انجمن میرم... دوباره قشم ... و نیستم که جواب هارو بدم

امیدوارم وقتی برگشتم سورس

چون PackageName جدید جایگذین PackageName جدید شده باز میتونید اون برنامه مثلا نیترو شارژ رو تبلیغ کنید :ok:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

من که هر کاری کردم نشد

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خسته نباشید استاد ایزدی عزیز.

روش جالبی بود انشاءالله که دوستان سورسشو کاملتر و شیک تر مینویسن و قرار میدن.

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

الان این هم جزء مسابقه ای برای یادگیریه که کی به چه صوذت قابلیتی رو بهش اضافه کنه یا اینکه کاملتر کنه و یا ابتکارات دیگه.

انشاءالله که دوستان انجام میدن و قرار میدن و این از خود بنده هم مستثنا نیست.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

هر وقت یه چیز خوب پیدا شده کل ملت توش موندن

عزیزان یا پست نزنید یا اگر پست میزنید کامل باشه این کد ها که نوشین خب یه کدی هم باید تو اکتیویتی اول باشه که اجرا بشه یا نه؟

نیست من هر کاری کردم نشد؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

کاملا با حرفتون مخالفم

یعنی لقمه اماده بدیم دسته کاربر ؟

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

شما کافیه توی اکتویتی هرجا دوست داشتی این سرویسو صدا بزن

توی رویداد Activity_Create  شما بیا سرویسو استارت کن

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 هفته بعد...

سلام به اقای ایزدی عزیز

ممنون برای این تایپک

من کاملا از رو فیلمتون رفتم جلو

هیچ اروری هم ندارم

سرویس رو هم در اکتیویتی که اول برنامه اجرا میشه، صدا کردم اما اصلا ناتیفیکیشنی دریافت نکردم

رو دو تا گوشی با دو تا نت جدا هم تست کردم

بازم نتیجه نداد

به نظرتون مشکل چی میتونه باشه

ممنون میشم راهنماییم کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اقای ایزدی؟ دوستان؟

ببخشید تایپک رو اپ میکنم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

با Log یا MsgBox کار کنید ببینید چه عملی داره انجام نمیشه و برنامه تا کجا داره پیش میره ...

 

قانونا نباید مشکلی پیش بیاد

این روشی هست که من قبلا باهاش کار میکردم و تازگی ها هم که تستش کردم کاملا داره جواب میده ....

 

باز مشکل حل نشد سورستون رو توی تاپیک قرار بدید...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون جناب ایزدی

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

این سورس

ممنون

این سورس سرویس

#Region  Service Attributes 
	#StartAtBoot: False
	#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 timer1 As Timer
 Dim httpjob1 As HttpJob
 Dim httpjob2 As HttpJob
 Dim noti As Notification
 Dim packagename As String
 
 
End Sub

Sub Service_Create
httpjob1.Initialize("httpjob1",Me)
httpjob2.Initialize("httpjob2",Me)
noti.Initialize
noti.Icon = "icon"
noti.Light = True

End Sub

Sub Service_Start (StartingIntent As Intent)

timer1.Initialize("timer1",300000)
timer1.Enabled = True

End Sub

Sub Service_Destroy

End Sub

Sub timer1_Tick
	
	Try
	httpjob2.Download("http://www.chef-mag.ir/start.txt")
	Catch
	
	End Try
	
End Sub

Sub JobDone(job As HttpJob)

If job.Success = True Then
	If job.JobName = "httpjob1" Then
		Dim value As String = job.GetString
		Try
			 Dim part() As String = Regex.Split("#",value)
                Dim oldvalue As String = File.ReadString(File.DirInternal,"soon.iz")
                packagename = part(0)
                If oldvalue.Contains(part(0)) = False Then
                File.WriteString(File.DirInternal,"soon.iz",packagename)
                noti.SetInfo("خبر جدید",part(1),com_notification)
                noti.Notify(1)
                End If
		 Catch
		 
         End Try
		 
	else if job.JobName = "httpjob2" Then
		 	If job.GetString.Contains("start") Then
            httpjob1.Download("http://chef-mag.ir/check.txt")
            End If
			
	End If
Else

End If





End Sub

این سورس اکتیویتی

com_notification



کد مانیفست

SetActivityAttribute(com_notification,android:theme,@android:style/Theme.Translucent.NoTitleBar)

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

StartService(commingsoon)

خیلی خیلی ازتون ممنونم جناب ایزدی برای توجهت

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوستان گلم شاید در سورستون آیکن رو تعریف نمیکنید ...

تا زمانی که آیکون نذارید نشون نمیده ها

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوستان گلم شاید در سورستون آیکن رو تعریف نمیکنید ...

تا زمانی که آیکون نذارید نشون نمیده ها

سلام محمد

احتمالا برای همون بوده

من تعریف نکردم ایکونی یه تست میکنم :D

لینک ارسال
به اشتراک گذاری در سایت های دیگر

یک بار که کمه اقای ایزدی لطف کنید کاری کنید که بشه چند بار استفاده کرد

 1- میتونید شرط رو بشکنید

2- این فقط واسه یک بار نیستش که ...

همینطور که گفتم پکیج نیم رو اگه یک بار عوض کنید برای سری بعد میتونید دوباره پکیج نیم قبلی رو استفاده کنید ...

یک موضوع هم بگم :

این خط رو که میبینید :

uri="bazaar://details?id="&commingsoon.packagename.SubString(1)

توی سرور PersianGIG باید حتما اون SubString1 رو استفاده کرد !!!

توی هاست های دائمی اصلی اون 1 رو بکنید 0 !!!

بعضی سایت ها مثل PersianGIG یک کارکتر Hiden اضافه میکنند ... واسه همین SubString1 رو استفاده کردیم

دوستانی که بلد هستند کد نویسی رو به فارسی واسه خودشون ترجمه کنند و معنی تک تک خط ها رو میفهمنن کاملا متوجه منظورم میشن بدون هیچ شکی !!!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • اضافه کردن...