1396/6/12، 12:52 صبح
سلام دوستان.
معرفی:
یه مشکلی که کانستراکت داره اینه که یه سری قابلیت های اندروید رو نداره، پلاگین های متفرقه زیاد هستن، ولی واقعا حوصله میخواد پلاگین پیدا کردن... ولی یه پک هست که کل اش توسط یه دولوپر نوشته شده و نسبتا جامعه... خلاصه عالیه و بنظرم واقعا کانستراکت خودش باید این رو میذاشت تو برنامه.
اسم پکیج:
Cranberrygame construct2-cordova-plugins
لیست پلاگین های خیلی کاربردی اش:
- CordovaContacts مخاطبان
- CordovaFile کار با فایل ( متنی) ، خوندن و نوشتن فایل و ...
- CordovaFileTransfer آپلود و دانلود فایل -> یه موقعی میخواین یه عکسی چیزی دانلود کنین، یا برعکس، به سرور آپلود کنین...
- CordovaInAppBrowser بروزر داخل بازی، مثلا میخواین یه صفحه وب سایتتون رو همیشه اول بازی نشون بدین، مثلا اخبار بازیتون و ...
- CordovaMedia خودش گفته مشکل پخش نشدن پلاگین صدای کانستراکت تو اندروید رو حل میکنه، تست نکردم...
- CordovaNetworkInfo بفهمی طرف آنلاینه یا نه، برای تبلیغ آنلاین (محدودیت گذاشتن برای بازی آفلاین)، بازی های آنلاین و ...
- CordovaVibration ویبره رفتن دستگاه
- CordovaBluetoothSerial انتقال داده از طریق بلوتوث... مثلا برای بازی مولتی پلیر آفلاین اندروید عالیه...
- CordovaImagePicker انتخاب عکس از گالری
- CordovaLocalNotification نوتیفیکیشن دادن
- CordovaScreenCapture عکس گرفتن از صفحه
- CordovaSMS اس ام اس
- CordovaVolumeSlider نشون دادن ولوم تنظیم صدای وسیله، تا کاربر صدای وسیله اش رو کم و زیاد کنه
- CordovaWallPaper ست کردن والپیپر، به یه عکسی که توی پروژه هست...
- CordovaParsePushNotification نوتیفیکیشن آنلاین، توی سایت parse ثبت نام میکنین و هر وقت خواستین نوتیفیکیشن میفرستین برای یوزر های بازیتون...(نمیدونم فیلتر یا تحریمه یا نه؟؟؟)
- example_c2_geolocation فهمیدن مکان یوزر
فقط پوشه های
- Cordova_core و Cordova_extension
- Cordova_extension_pushnotification
- Cordova_extension_performance
- exampleonly_other
لیست کامل:
request_construct2_cordova_plugins
یه نکته: بعضی پلاگین ها فرمتشون c2addon است که میشه با درگ و دراپ توی کانستراکت نصب کرد، ولی هیچ فرقی با پلاگین عادی نداره، میتونین با winrar معمولی extract شون کنید و میبینید که مثل یه پلاگین معمولیه...
لینک خرید:
request_construct2_cordova_plugins
لینکی که دوستان share کردن (توصیه میکنم اگه قصد پول درآوردن از بازی تون رو دارید، حداقل بعد از اینکه پول درآوردید پلاگین رو از لینک بالا بخرید، واقعا براش زحمت کشیده شده) :
دانلود افزونه ceryberry + 199
(لینک سوم پست اول، حواستون باشه پسورد فایل فشرده هم اسم سایتشونه: scirra.blog.ir )
( با تشکر از دوستان، تاپیک مجزا زدم چون اسم پکیج رو هم کامل ننوشته بودند توی تاپیک، و خیلی از دوستان پلاگین اندروید میخواند برای کانستراکت، و توی گوگل و ... پیدا نمیشه تاپیک بالا، اطلاعات هم کامل نیست...)
--------------------------------------------------
نحوه کار با پلاگین های cordova توی کانستراکت :
این پلاگین ها ، توی خروجی معمولی html5 کار نمیکنن...
خروجی گرفتن یه پروژه معمولی برای cordova و تبدیلش به اندروید:
اگه سرج کنین میبینید که آموزش خروجی گرفتن برای cordova ، نصب cordova، ساختن فایل apk ، توی اینترنت هست... مثلا
آموزش زیر:
دانلود افزونه ceryberry + 199
دانلود افزونه ceryberry + 199
(فارسی هم آموزش هست، اگه بگردین، کسی لینک خوب داره بگه بذارم)
کوکون هم که بر پایه کوردواست ... که میتونین پروژه رو بش بدین apk بده بتون، که باز آموزش هاش هست...
حالا برای اینکه یه پروژه توی کانستراکت که از یه پلاگین کوردوا استفاده میکنه رو ، بخوایم apk کنیم، اولا توی کانستراکت که خروجی cordova میگیریم، ولی توی کوردوا، برای اینکه بخواین به apk تبدیلش کنید، باید پلاگین هایی که توی کانستراکت استفاده کردیم رو توی کوردوا هم اضافه کنیم، مثلا توی کانستراکت از Cordova SMS استفاده کردیم، توی گوگل سرچ اش میکنیم، لینک پلاگین کوردوای مربوطش میاد، نحوه اضافه کردنش هم توی خود لینک گفته، مثلا توی خود کوردوا با کد زیر:
cordova plugin add cordova-sms-plugin
توی کوکون و ... هم میشه اضافه کرد... جستجو کنید "نحوه اضافه کردن پلاگین کوردوا در ..." پیدا میشه...
(دوستان این قسمت رو مطمئن نیستم، مثلا سه تا پلاگین برای cordova-sms توی گوگل پیدا شد، از کجا بفهمیم دقیق کدومه؟ خواهشا اگه میدونید بگید اصلاح کنم، اصلا شاید هم پلاگین های پیش فرض کوردوا باشه و نیاز به نصب نداشته باشه..)
خلاصه اگه پلاگین رو اضافه نکنید و خروجی بگیرید، صفحه سیاه میشه(، یا ارور میده و ... دقیق نمیدونم)، ولی اگه اضافه کنید، و مراحل ساخت apk رو درست رفته باشید، توی دستگاه، مثلا اندروید، قابلیتی که میخواین کار میکنه... مثلا لیست مخاطبین رو نشون میده... ولی توی preview و مرورگر، یا خطا میده یا کار نمیکنه...
----------------------
دیباگ:
اومدیم صفحه سیاه شد تو اندروید بعد از خروجی ، چیکار کنیم؟
راه حل اینه که usb debugging رو توی اندروید فعال کنید، (از قسمت developer options که باید جستجو کنید ببینید چجوری، آموزششاش هست)...
بعد میتونید دستگاهتون رو بعد از اتصال به usb توی مرورگر کروم، از آدرس :
chrome://inspect/#devices
مثل قسمت کنسول مرورگر، ببینید... یعنی ببینید خطاش چیه و یا خودتون سرچ کنید یا به دوستان بگین کمکتون کنند...
یادم نیست که درایوری چیزی برای کار باهاش توی کامپیوتر باید نصب کنید یا نه...
به اینکار میگن: remote-debugging ، سرچ کنید آموزشش هست...
چجوری خودمون یه پلاکین cordova برای کانستراکت بنویسیم؟ (فقط برنامه نویس ها بخونند(جاوا اسکریپت))
نحوه کار کرد cordova و پلاگین نویسی برای کوردوا و کانستراکت (پلاگینی که داریم درباره اش حرف میزنیم چگونه ساخته شده):
cordova :
cordova یه برنامه است، که فایل های html و js رو به برنامه اندروید apk و ipa(آیفون) و ...(مولتی پلتفرمه) تبدیل میکنه، ولی یه قابلیت منحصر به فردش، اینه که میتونه توی کد های جاوااسکریپت به .java که کد اندروید است، دسترسی داشته باشه، حالا به چه درد میخوره؟ مثلا یه نفر یه کلاس اندروید نوشته که با بلوتوث اندروید کار میکنه با فرمت java ... و ازونور یه نفر یه پلاگین cordova نوشته که بتونیم با js به اون فایل های java دسترسی داشته باشیم... پلاگین های خیلی خیلی زیادی هست و اپن سورس برای cordova که قبلا نوشته شده و راحت میشه سرچ کرد و استفاده کرد، میشه هم خودمون بنویسیم...
پس روند اینه که یه پلاگین کوردوا رو پیدا میکنیم، اضافه میکنیم به کوردوا، و با javascript ازش استفاده میکنیم، تا مثلا بتونیم بلوتوث هر دستگاهی ( مثلا انروید) رو روشن کنیم( قابلیت های native (محلی) یه دستگاه، که html معمولی بشون دسترسی نداشت)
construct:
توی کانستراکت چجوری میشه کار های برنامه نویسی کرد؟ با اکشن execjs توی کانستراکت میشه. مثلا به فرض توی کوردوا، یه پلاگین بلوتوث داشته باشیم که توی جاوااسکریپت با cordova.blutooth.enable() بتونیم بلوتوث رو روشن کنیم، میتونیم دقیقا همین کد رو توی construct ، با execjs اجرا کنیم. ولی دو تا مشکل داره:
1. کثیف کاری میشه توی برنامه کد بزنیم... کانستراکت اصلا برای زیبایی محیطش خوبه...
2. trigger ها توی کانستراکت چی؟ مثلا اگه بلوتوث وقتی enable اش کردیم خواست به ما خبر بده که بلوتوث روشن شد، توی javascript میشه بش یه تابع callback بدیم بگیم این رو اجرا کن، ولی توی کانستراکت چی؟ میتونیم بگیم یه تابع توی کانستراکت رو اجرا کن؟ یا یه متغیر global توی کانستراکت رو ست کن؟ به صورت پیش فرض ست کردن متغیر ممکنه(البته اینم با یه قلق میشه که سرچ کنید هست) ، ولی اجرای تابع نه، ولی برای اجرای تابع هم میشه بگیم فلان متغیر رو 1 کن، و یه شرط بذاریم بگیم هر وقت این متغیر 1 شد، یه تابع اجرا کن، که بازم کثیف کاری میشه...
خوب راه تمیز چیه؟ جواب:پلاگین نویسی کانستراکت. یعنی یه پلاگین مینویسیم که توابع js کوردوا رو اجرا میکنن و توابع callback رو ست میکنن ، ازونطرف یه سری متغیر، شرط، تریگر ، پارامتر و ... تعریف میکنیم که توی کانستراکت اجرا بشن... واسه همینه که هر پلاگین اگه دیده باشین دو تا فایل editor و runtime داره، اولی یعنی تعاریف توی کانستراکت، دومی یعنی کد های اجرایی javascript که زمان اجرا اجرا میشن... حالا این دو فایل باید با هم مچ باشن، یعنی توی کدهای javascript مون( runtime )، توابع مناسب توی کانستراکت رو فراخوانی میکنیم، یا موقع اجرای توابع کانستراکت(editor) ، تابع های جاوااسکریپ رو اجرا میکنیم...
این دقیقا کاریه که این پلاگین کرده، یعنی مثلا یه پلاگین کوردوا رو سرچ کنید، مثلا:
دانلود افزونه ceryberry + 199
میبینید که نحوه استفاده به زبان جاوا اسکریپت رو گفته، حالا میخوایم یه پلاگین کانستراکت برای این بسازیم ... این میره توی فایل runtime (یه سری چیزای دیگه هم توی این فایل هست که بیشتر قالبه،یعنی مشترکه بین همه پلاگین ها) ، حالا ما یه فایل editor مینویسیم که رابطی که قراره توی کانسراکت ببینیم رو تعریف میکنیم توش... بعد بر میگردیم به runtime، و اون رو بر اساس شروط، trigger ها و توابعی که توی editor نوشتیم، تغییر میدیم...
زمان حدودی که میبره:
من خودم، برای تست، یه پلاگین cordova رو ( websocket که ساخت اش توی مرورگر پشتیبانی نمیشه )، پلاگین کانستراکت اش رو نوشتم که تو کانستراکت باش کار کنیم(کامل نه، یه چیز حدودی) ، قشنگ(البته بعد از 4 ساعت دیباگ، هی صفحه سیاه میشد و ...خروجی گرفتن هم که کند بود توی کوردوا و وقت میگرفت ) روی اندرویدم کار کرد... از قبل نه تجربه build با اندروید با کوردوا داشتم، نه تجربه پلاگین نویسی کانستراکت، یک روز وقت گرفت. (البته تسلط نسبی به javascript و برنامه نویسی که واضحه میخواد)
چه پست طولانی ای شد...
تگ ها: پلاگین cordova برای کانستراکت، construct 2 cordova plugin ، پلاگین native نویسی در construct، معرفی cordova ، پلاگین Cranberrygame construct2-cordova-plugins - پلاگین اندروید برای کانستراکت، مخاطبان در construct 2- بلوتوث در کانستراکت 2 - نوتیفیکیشن در کانستراکت 2 ، ویبره در کانسراکت 2 ، android in construct 2