راهنمایی درباره ساخت برنامه تلفن همراه ( بسته های افزایشی )

rezaflasher

New Member
سلام دوستان
من در حال ساختن یک app برای تلفن همراه ( اندروید و یا ای او اس ) توسط flash air هستم . می خواهم یک نسخه کوتاه شده را به صورت رایگان انتشار دهم و کاربرانی که طالب نرم افزار کامل هستند توسط گزینه ای در برنامه بخش های مورد نیاز را از اینترنت دانلود کرده و به برنامه بیفزایند و افلاین نیز از ان استفاده کنند .
حالا از دوستان خواهشمندم من را راهنمایی کنن که ایا روشی در کد نویسی هست که پس از خروجی برنامه بتوان فایلی را از ادرسی اینترنتی دانلود کرد و به برنامه افزود ؟
ممنون از راهنماییتون .
 

benyamin_pc

Well-Known Member
شما میتونید به این صورت عمل کنید : همه اون چیزی که برنامتون داره (قسمت های رایگان و پولی) همرو کدشو بنویس , بعد مجوز های دسترسی برای برنامت تعیین کن , در نهایت مجوزهائی که میخای از اول باشن رو بگذار از اول باشن و اونهائی که پولی هستند رو در صورت پرداخت هزینه و دریافت فید بکش از بانک برای کاربر فعال کن ...
 

rezaflasher

New Member
ممنون از benyamin_pc
این کار به فکر خودم هم رسیده بود اما با این کار هم حجم فایل رایگان بیشتر میشه و هم امکان کرک برنامه بیشتر میشه .
اما سوال من بیشتر در باب امکان دریافت بسته الحاقی به برنامه بود ، بیشتر می خوام در این زمینه من را راهنمایی کنید .
 

benyamin_pc

Well-Known Member
اینی که میخاید استفاده از کد 2 پارته که تحت سیستم هائی مثل دات نت توسط dll ها انجام میشه , در این شیوه کد شما 2 قسمت می باشد 1 قسمت که به شکل dll کامپایل میشه و یک قسمت که به صورت exe کامپایل میشه , در کدهای exe کدهای استفاده از dll(بخش پولی) نوشته میشن, در این شیوه تفاوت در اینه که فقط نحوه استفاده از ماژول های پولی در برنامه رایگان از قبل نوشته میشه اما در روش قبلی کل کد قسمت پولی هم در نسخه رایگان نوشته شده
این شیوه ها اصولی هستند , غیر از اینها شما میتوانید بجای افزودن dll به برنامتون , یک dll را با dll موجود برنامتون جایگذین کنید , این شیوه امکان اینو بهتون میده که حتی نحوه استفاده از کد قسمت پولی هم در نسخه رایگان ننویسید , از طریق ارتباطاتی که بین dll جایگذین شده با کد main برنامتون از قبل ایجاد کردید میتونید آثار کد قسمت پولی رو در نسخه رایگان به حداقل ممکن برسونید

dll ها کلاس هائی کد نویسی شده هستند که این امکان بهتون میدن که پس از کامپایل برنامه , کد به برنامه بدید , در فلش بعد از کامپایل نمیشه کد به برنامه بدید مگر اینکه خودتون کلاسی برای این کار مثل اجرا کننده dll در فلش بنویسید(چند مورد نوشته شده آمادش تو نت هست) شیوه کار این کلاس ها به این شکله که شما توابعی مینویسید و چک میکنید که اگر فلان ورودی از فایل خارجی مثلا alu دیده شد فلان تابع را که از قبل نوشته اید اجرا کند , حال این کلاس یک کلاس عمومی است و از کد قسمت پولی شما حرف نمیزند و شما توسط اون کدهائی که برای خودتون تعیین کردید مثل alu , داخل یک فایل خارجی استریم کدی که میخاهید به برنامه میدید ...
مثلا mov a,b , .....

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

امیدوارم مفهوم بوده باشه
 

benyamin_pc

Well-Known Member
راه دیگه ای که در فلش کاربرد داره اینه که کدهائی که میخاهید در قسمت پولی باشن در swf دیگری بنویسید و بعد با swf اصلیتون از اون کدها استفاده کنید , در واقع swf ثانویه اینجا تا حدی حکم dll میتونه براتون به شیوه راحتی بازی کنه ....
 
در برنامه های موبایل روشی به نام inAppPurchase هست برای همین کار که قسمتهای دیگر همان برنامه را خریداری میکنید.
اما !!! در AIR، بخشی که دانلود شده و به برنامه اضافه میشود، نمیتواند شامل کد باشد! (اگر باشد اجرا نمیشود) در واقع شما فقط یک swf از asset های مورد نیاز میتوانید دانلود کنید.
پس بدانید که نمیتوانید بخشی از کد را دانلود کنید.
 

benyamin_pc

Well-Known Member
در برنامه های موبایل روشی به نام inAppPurchase هست برای همین کار که قسمتهای دیگر همان برنامه را خریداری میکنید.
اما !!! در AIR، بخشی که دانلود شده و به برنامه اضافه میشود، نمیتواند شامل کد باشد! (اگر باشد اجرا نمیشود) در واقع شما فقط یک swf از asset های مورد نیاز میتوانید دانلود کنید.
پس بدانید که نمیتوانید بخشی از کد را دانلود کنید.

من این کار را انجام دادم هم ویندوز هم ایر هم آندروید چطور نمیتوانیم swf شامل کد را دانلود کنیم و ازش داخل swf اصلیمون استفاده کنیم , اینی که میگید swf شامل کد اجرا نمیشه مربوط به ios هست که داخل ios هم اخیرا در مقاله ای دیده بودم که جدیدا میشه (برای ios اخیرا در مقاله ای دیدم و تست نکردم)
 
آخرین ویرایش:
سلام

بله منظور من هم iOS بود. اگر امکان آن فراهم شده باشد که خیلی عالی است.
 

rezaflasher

New Member
دوباره سلام دوستان
بزارید نیازم رو دقیق تر بگم
فرض کنید فایلهایی که قراره اضافه بشن شامل یکسری فایل xml و چند تا عکسه که برنامه مورد نظر اون فایل های xml رو می خونه و با استفاده از xml عکس ها رو هم در جای خاصش اجرا می کنه .
من مشکلی با نوشتن برنامه برای خواندن و اجرا xml و عکس ها ندارم
مشکلم با دانلود این فایل ها ( xml و عکس ) و اضافه کردنشون به برنامه نصب شده در تلفن همراه هوشمنده چون وقتی با air از فایلمون خروجی نصب برای همراه می سازیم air همه اونا رو پک می کنه و تبدیلشون به فایل نصب میکنه می خوام ببینم میشه :
فایل ها رو با کد خاصی دریافت کرد و در کنار فایلهای نصب شده ی برنامه قرارداد ( فرضا در کنار xml اولیه که موقع خروجی با فلش در کنار فایل هامون پک میشه )
امیدوارم منظورم رو رسونده باشم .
دوستان خواهش میکنم جزیی تر بگویید و اشاره کنید دنبال کدام مباحث می بایستی بگردم .
ممنون
 

benyamin_pc

Well-Known Member
فایل عکس یا xml که میخاهیدو اصلا میتونید مستقیم از نت بخونید و رو گوشی هم نریزید , خاستین هم بریزید نباید در کنار فایل نصبی فکر کنید لازمه قرارش بدید , هرجا روی مموری کارت خاستین بریزید(یا حافظه داخلی) بعد از همون آدرس بخونیدش و هرکارش خاستید بکنید
 

rezaflasher

New Member
benyamin_pc عزیز
ممنون میشم که راهنماییم کنید که برای دریافت از یک لینک و انتقال به مسیری خاص در تلفن همراه و همچنین برای خواندن فایل از یک مسیر خاص در تلفن همراه از کدام دستورات adobe air استفاده کنم و اگر مرجعی برای تکمیل اطلاعات درباره دستور مورد نظر میشناسید معرفی کنید .
 
سلام البته پیشنهاد اول من همون پیشنهاد دوستان است. یعنی نیاز نیست در گوشی ذخیره بشه. بلکه هر موقع نیاز شد دانلود شه، از یک url از اینترنت فایل را لود کنه و اجرا کنه. اگه میخای آفلاین باشه. که من این راه را دقیقا نرفتم ولی شبیه این کار را چند روز پیش انجام دادم. یعنی به یک فایل txt را آدرس دادم در کنار فایل نصب در موبایل ذخیره بشه. اون کلاس پارمترهایی برای copy-paste-delet و ... داشت که احتمالا بدرد شما میخورد. من این کلاس را بهتون معرفی می کنم. بقیه اش با خودتون که در موردش بیشتر مطالعه و امتحان کنید.
کد:
            var str:String = File.applicationStorageDirectory.nativePath;
            var file:File = new File(str +"test.txt");
            var stream:FileStream = new FileStream();
            stream.open(file, FileMode.WRITE);
 

جدیدترین ارسال ها

بالا