رفتن به مطلب
  • 0

بررسی برای نسخه جدید هنگام شروع برنامه


pourya-man

سوال

سلام ، قبلا این یک تاپیک پرسشی بود که به نتیجه رسید و نتیجه شو اینجا میذارم که بقیه دوستان هم استفاده کنند. باتشکر از همه کسایی که پاسخ دادند

این آموزش توسط دوست عزیز hakan22 انجام شده.

تو سرور فایل php با محتویات زیر درست میکنیم

<?php
print json_encode ("1.0.1");
 ?>

بعد تو اکتیویتی اصلیتون این کد رو قرار میدید

#Region  Project Attributes 
	#ApplicationLabel: B4A Example
	#VersionCode: 1
	#VersionName: 
	'SupportedOrientations possible values: unspecified, landscape or portrait.
	#SupportedOrientations: unspecified
	#CanInstallToExternalStorage: False
#End Region

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

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

End Sub

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.

End Sub


Sub Activity_Create(FirstTime As Boolean)
	TestConnection
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub TestConnection
	Dim Connect As HttpJob
	Connect.Initialize("Connect", Me)
	Connect.Download("http://phoneplus.ir/mobilepourya/NewVersion/Update.php")
	ProgressDialogShow("در حال بررسی بروزرسانی")
End Sub

Sub JobDone (Job As HttpJob)
	ProgressDialogHide
	If Job.Success = True Then
		Dim ret As String 
		ret = Job.GetString 
		Dim parser As JSONParser
        parser.Initialize(ret)		
		If Job.JobName = "Connect" Then
			Dim act As String = parser.NextValue
			If act = "2.1" Then
				ToastMessageShow("شما از آخرین نسخه استفاده میکنید", True)
			Else
			Dim a As Int
				a = Msgbox2("نسخه جدید برنامه ارائه شده ، مایل به بروزرسانی هستید؟","بروزرسانی","بروزرسانی","خیر","",Null)
				If (a = DialogResponse.POSITIVE) Then
				StartActivity(update)	
			End If		
		End If
	Else
		ToastMessageShow("امکان بررسی وجود ندارد، اتصال اینترنت خودرا چک کنید", True)	
	End If
	End If
	Job.Release
End Sub

با توجه به نوع برنامه تون میتونید کد ها رو ویرایش کنید.

 

یک اکتیویتی آپدیت درست میکنید و این کد ها رو میذارید داخلش

سورس پیوست شد

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


Sub Process_Globals
    Private hc As HttpClient
    Private req As HttpRequest
End Sub


Sub Globals


End Sub


Sub Activity_Create(FirstTime As Boolean)


    ProgressDialogShow("درحال بررسی فایل")


hc.Initialize("hc")


req.InitializeGet("https://www.sitesazparsi.ir/AppA/navid-decoration.apk")
hc.Execute(req, 1)


End Sub


Sub Activity_Resume


End Sub


Sub Activity_Pause(UserClosed As Boolean)


End Sub


Sub hc_ResponseSuccess(Response As HttpResponse, TaskId As Int)


    Response.GetAsynchronously("GetAPK", File.OpenOutput(File.DirDefaultExternal, "navid-decoration.apk", False), True, TaskId)


End Sub


Sub hc_ResponseError(Response As HttpResponse, Reason As String, StatusCode As Int, TaskId As Int)


    Msgbox(Reason, "خطا هنگام دریافت فایل")


End Sub


Sub GetAPK_StreamFinish(Success As Boolean, TaskId As Int)

    If Success Then

  Private i As Intent
      
ProgressDialogHide

i.Initialize(i.ACTION_VIEW, "file://" & File.Combine(File.DirDefaultExternal, "navid-decoration.apk"))
       i.SetType("application/com.tahael.naviddec")
       
StartActivity(i)

End If

End Sub

newverchek.zip

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

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

بفرما اینم جواب  :pardon:

دو تا اتفاق میوفته یا گوشی طرف منفجر میشه یا کدا کار میکنن :oops:  :lol:

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

میشه به منم بدید ممنون

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

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

به جای فایل تکست از دیتابیس استفاده کن و از طریق پست فقط یه رکورد رو بخون خیلی سریعتره

راحته که :pardon:

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

باسلام

سورس رو کمپایل میکنم این ارور رو میده دلیلش چیه؟ ممنون مورد نیاز:2:

 

B4A Version: 8.50
Parsing code.    (0.00s)
Building folders structure.    (0.09s)
Compiling code.    (0.07s)
    
ObfuscatorMap.txt file created in Objects folder.
Compiling layouts code.    (0.00s)
Organizing libraries.    (0.00s)
Generating R file.    (0.09s)
Compiling generated Java code.    Error
B4A line: 25
hc.Initialize(\
javac 1.8.0_152
src\b4a\example\update.java:350: error: cannot access ClientProtocolException
_vv2.Initialize("hc");
               ^
  class file for org.apache.http.client.ClientProtocolException not found

 

 

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

کد های زیر مال آپدیت دیتا بیسه که تغیرش دادم :mail1:

Sub btnUpdate_Click
Dim ht As HttpJob
ht.Initialize("update",Me)
ProgressDialogShow("updating")
ht.Download("آدرس محل برنامه آپلود شده")
End Sub
سپس یه Sub مینویسیم

Sub JobDone(Job As HttpJob)
ProgressDialogHide
 If Job.Success Then
  If Job.JobName = "update" Then
   File.Delete(File.DirInternal,"(نام فایل نصبی نسخه قبل(در صورت وجود داشتن.APK")
   File.OpenOutput(File.DirInternal,"نام فایل نسخه جدید.APK",False)
  End If
 End If
End Sub

دمتگرم منتها مشکل دانلود نیست ، من دانلود نسخه جدید رو حل کردم مشکل چک کردن نسخه جدیده ک چک نمیکنه

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

به جای فایل تکست از دیتابیس استفاده کن و از طریق پست فقط یه رکورد رو بخون خیلی سریعتره

راحته که :pardon:

چطوری؟ بلد نیستم :)
لینک ارسال
به اشتراک گذاری در سایت های دیگر

کتاب خونشو ادد کنید به برنامتون کلاسش هم اد کنید تو پروژتون

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

If datas.GetExtra("type")=types.TYPE_NEWVERSION Then
If datas.GetExtra(newVersionExtras.STATUS)="1" Then
'دانلود کردن اجباری است ، یعنی میتوانید مقداری را ذخیره سازی کنید تا موقع ورود دیگر اجازه ی استفاده از برنامه شما را میسر نباشد
Dim link As String=datas.GetExtra(newVersionExtras.LINK)
Dim i As Intent:i.Initialize(i.ACTION_VIEW,link)
StartActivity(i)
else if datas.GetExtra(newVersionExtras.STATUS)="2" Then
'دانلود اختیاری است
Dim link As String=datas.GetExtra(newVersionExtras.LINK)
Dim i As Intent:i.Initialize(i.ACTION_VIEW,link)
StartActivity(i)
End If
End If

برای دریافت نسخه جدید استفاده کنید

تو سورس بالا همه چیز مشخصه

این لینک برنامتون هست :

datas.GetExtra(newVersionExtras.LINK)

دانلود اجباری اختیاری هم که مشخص شده . این کلاس همیشه در حالت اجرا هست و رویداد های جدید هم با براد کست چک میشه شما فقط برنامه ایی که میخوای رو بنویس وقتی رویداد جدید ایجاد شد یا همون نسخه جدید ارسال کردی توی کلاس چه اتفاقی بیفته . اگه با کلاس ها در b4a کار کرده باشید کار خیلی ساده ای هست . :53:

 

میتونی برنامه را به عنوان ناتفیکیشن باز کنی میتونی برنامه را تو پوش دیالوگی معرفی کنی . توسعه یار فقط محتوایی که تو پنل قرار دادی رو تحویلت میده دیگه دستت کامل بازه که میخوای چیکار باهاش بکنی . :53:

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

ksoi

 

کتاب خونشو ادد کنید به برنامتون کلاسش هم اد کنید تو پروژتون

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

If datas.GetExtra("type")=types.TYPE_NEWVERSION Then
If datas.GetExtra(newVersionExtras.STATUS)="1" Then
'دانلود کردن اجباری است ، یعنی میتوانید مقداری را ذخیره سازی کنید تا موقع ورود دیگر اجازه ی استفاده از برنامه شما را میسر نباشد
Dim link As String=datas.GetExtra(newVersionExtras.LINK)
Dim i As Intent:i.Initialize(i.ACTION_VIEW,link)
StartActivity(i)
else if datas.GetExtra(newVersionExtras.STATUS)="2" Then
'دانلود اختیاری است
Dim link As String=datas.GetExtra(newVersionExtras.LINK)
Dim i As Intent:i.Initialize(i.ACTION_VIEW,link)
StartActivity(i)
End If
End If

برای دریافت نسخه جدید استفاده کنید

تو سورس بالا همه چیز مشخصه

این لینک برنامتون هست :

datas.GetExtra(newVersionExtras.LINK)

دانلود اجباری اختیاری هم که مشخص شده . این کلاس همیشه در حالت اجرا هست و رویداد های جدید هم با براد کست چک میشه شما فقط برنامه ایی که میخوای رو بنویس وقتی رویداد جدید ایجاد شد یا همون نسخه جدید ارسال کردی توی کلاس چه اتفاقی بیفته . اگه با کلاس ها در b4a کار کرده باشید کار خیلی ساده ای هست . :53:

 

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

 

نسخه جدید رو از کجا چک میکنه ؟

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

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

این که خیلی پیچیده شد

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

حالا با هر روشی که شد

چک که کرد اگه نسخه جدید اومده بود یک اکتیویتی رو باز کنه

همین

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

بهترین و راحت ترین راه استفاده از قابلیت نسخه جدید توسعه یار هستش!

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

ksoi

 

 

نسخه جدید رو از کجا چک میکنه ؟

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

 

نسخه جدید هرجا دوست دارید آپلود کنید لینکشو درون توسعه یار قرار بدید ارسال کنید برای کاربراتون هر کاربری نصب داشته باشه براش نسخه جدید ارسال میشه با توجه به شرط اختیاری و اجباری نسخه جدید به همراه لینک دانلود بهش نشون داده میشه .

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

این که خیلی پیچیده شد

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

حالا با هر روشی که شد

چک که کرد اگه نسخه جدید اومده بود یک اکتیویتی رو باز کنه

همین

هموطن شما هاستو سی پنلو یه دونه دیتابیس که دارین قطعا؟

 

حالا کافیه یه تبل بسازیرن که دوتا فیلد یه دونه id از نوع اینت که همون فیلد اصلیه و یه دونه هم مثلا version از نوع اینت دو باره

اول ورژن فعلی برنامه رو بریزین تو یه متغیر مثلا oldversion

حالا فقط تو jobdone   اینارو بنویس

Dim newversion As Int
	If job.Success Then
		newversion=job.GetString
		If newversion-oldvesion>0 Then
			ToastMessageShow("update found",False)
		End If
	End If

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

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

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

یک فایل php تو هاست با این محتویات میسازیم

<?php
print json_encode ("1.0.1");
 ?>

به جای 1.0.1 ورژن برنامه

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

Sub Activity_Create(FirstTime As Boolean)
	TestConnection	
End Sub

Sub TestConnection
	Dim Connect As HttpJob
	Connect.Initialize("Connect", Me)
	Connect.Download("http://youresite.ir/app/connect.php")
	ProgressDialogShow("در حال بررسی بروزرسانی")
End Sub

Sub JobDone (Job As HttpJob)
	ProgressDialogHide
	If Job.Success = True Then
		Dim ret As String 
		ret = Job.GetString 
		Dim parser As JSONParser
        parser.Initialize(ret)		
		If Job.JobName = "Connect" Then
			Dim act As String = parser.NextValue
			If act = "1.0.1" Then
				ToastMessageShow("شما از آخرین نسخه برنامه ما استفاده میکنید", True)
			End If		
		End If
	Else
		ToastMessageShow("با موفقیت انجام نشد و برنامه بسته شد", True)	
		ExitApplication
	End If
	Job.Release
End Sub

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

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

بایگانی شده

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

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

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