شروع کار با Apache Cordova در ویژوال استودیو #3
اندازه‌ی قلم متن
تخمین مدت زمان مطالعه‌ی مطلب: چهار دقیقه

در قسمت قبل توانستیم ابزارهای لازم را برای Apache Cordova، نصب کنیم. در این قسمت یک پروژه‌ی ساده را ایجاد کرده و در مورد ساختار آن توضیح خواهم داد. در ادامه‌ی مقالات از  AngularJS ، Bootstrap ,Typescript و jQuery Mobile  هم در پروژه‌ها استفاده خوهیم کرد.
برای شروع، از قسمت JavaScript یا Typescript، یک پروژه‌ی از نوع Blank App ایجاد کنید. به شکل زیر:


ترجیحا نوع Typescript را انتخاب کردم. البته در داخل فایل ts. امکان نوشتن جاوا اسکریپت هم هست. بعد از ایجاد پروژه اگر با تصویری شبیه به تصویر زیر روبرو شدید، در نتیجه تنظیمات نصب و راه اندازی به درستی صورت گرفته است.



اگر به قسمت solution explorer دقت کنید، فایلی به نام config.xml را مشاهده خواهید کرد. با کلیک بر روی این فایل، یک صفحه‌ی گرافیکی باز خواهد شد که این امکان را به شما می‌دهد که پلاگین‌های مورد نیاز خود، تنظیمات مربوط به نرم افزار تولیدی (مانند تنظیم ورژن ویندوزی که می‌خواهید app شما بر روی آن اجرا شود) و تنظیمات مربوط به هر یک از پلتفرم‌ها را به صورت مجزا در اختیار داشته باشید.



یک فایل index.html هم در قالب پیش‌فرض قرار داده شده که بعدا می‌توانید آن را تغییر دهید و یا صفحات دیگری را اضافه کنید. همان طور که در قسمت‌های قبل گفته شد، قرار است ما یک وب اپلیکیشن طراحی کنیم و آن را درون Container بومی Cordova بسته بندی کنیم. لذا محدودیتی برای استفاده‌ی از کتابخانه‌های مرتبط با CSS ، HTML و JavaScript  نداریم و در ادامه‌ی مقالات با مثال‌های متعددی از آن‌ها استفاده خواهیم کرد.

در فولدر scripts-->typeings-->cordova-->plugins  اینترفیس‌هایی که برای دسترسی به امکانات بومی دستگاه تلفن فعلا در Cordova پشتیبانی می‌شوند، قرار گرفته است.

برای استفاده از تکنولوژی‌های وب در محیط بومی دستگاه، در طی فرآیند کامپایل، Cordova یک اپلیکیشن را به وسیله دو چیز مهم که در زیر اشاره شده است، خواهد ساخت.


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


برای یکپارچه شدن API‌های Cordova با وب پیج موجود، اندکی کد نیاز داریم که برای انکار لینکی شبیه لینک زیر را در فایل html خود استفاده می‌کنیم که فقط بعد از کامپایل وجود خارجی دارد؛ به صورت زیر:

<script src="cordova.js"></script>

در پایان هم برای فهمیدن اینکه API‌های Cordova در دسترس هستند، می‌توانیم رخداد مربوط به devicerady را مدیریت کنیم؛ به صورت زیر:

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() { /* INIT */ }

برای مدیریت رخدادهای مربوط به pause و resume هم که نشان دهنده‌ی ادامه برنامه (خارج شدن از حالت pause) و حالت تعلیق هستند، می‌توان به شکل زیر عمل کرد:

 function onDeviceReady() {
            // Handle the Cordova pause and resume events
            document.addEventListener('pause', onPause, false);
            document.addEventListener('resume', onResume, false);

            // TODO: Cordova has been loaded. Perform any initialization that requires Cordova here.
        }

        function onPause() {
            // TODO: This application has been suspended. Save application state here.
        }

        function onResume() {
            // TODO: This application has been reactivated. Restore application state here.
        } 

حال قصد داریم پروژه‌ی خود را که قرار است یک متن ساده را نشان دهد، با استفاده از شبیه ساز اجر ا کنیم. برای این منظور از قسمت toolbar ویژوال استودیو ، Solution Platform خود را انتخاب کنید و سپس می‌توانید شبیه ساز مورد نظر خود را انتخاب کرده و برنامه را اجرا کنید. در اینجا محیط مورد نظر من اندروید است  و برای این منظور هم میتوانم از شبیه ساز Android Emulator یا Ripple استفاده کنم.  به دلیل سرعت کم شبیه ساز اندروید، می‌توانید شبیه ساز  YouWave را دانلود و اجرا کرده و در قسمتی که شبیه ساز را از toolbar ویژوال انتخاب می‌کردید، این بار گزینه‌ی Device را انتخاب کنید. بعد از کامپایل برنامه‌ی شما، فایل apk تولید شده بر روی شبیه ساز نصب خواهد شد و شما قادر خواهید بود آنرا اجرا کنید.

نتیجه‌ی نهایی 

 با شبیه ساز Ripple 


مطالعه بیشتر

https://msdn.microsoft.com/en-us/library/dn879821(v=vs.140).aspx 

http://blog.falafel.com/getting-started-with-cordova-and-multi-device-hybrid-app-in-visual-studio/ 

http://www.codeproject.com/Articles/860150/Visual-Studio-and-Apache-Cordova 


نکته : وقتی پروژه را برای اولین بار اجرا می‌کنید شاید کمی طول بکشد تا نتیجه‌ی نهایی را ببنید و آن هم به دلیل این است که ویژوال استودیو  باید مجموعه‌ای از package  های مورد نیاز Cordova را دانلود کند.

در مقاله بعد با jQuery Mobile آشنا خواهیم شد و یک مثال برای کار کردن با آن در نظر خواهم گرفت.


ادامه دارد ...

  • #
    ‫۹ سال و ۶ ماه قبل، شنبه ۸ فروردین ۱۳۹۴، ساعت ۱۴:۴۴
    سلام ضمن تشکر بابت مقاله شما.
    چند سوال :

    1- آیا فقط با  TypeScript  و یا جاوا اسکریپت یا کتابخانه Jquery Mobile  میتوان تمام نیازهای یک برنامه را تامین کرد ؟
    2- دو روش دیگر برای ایجاد برنامه‌های موبایل وجود دارد :

    و

    تفاوت این دو روش ، با روش شما چیست ؟
    3-در دو روش بالا زبانی مثل سی شارپ مورد استفاده قرار میگیرد ، در روش شما چطور ؟

    4- آیا با توجه به محبوبیت زبان جاوا برای ساخت برنامه‌های اندرویدی ،  روش  مورد استفاده شما (cordova) میتواند با آن برابری کند ؟
    تشکر
    • #
      ‫۹ سال و ۶ ماه قبل، شنبه ۸ فروردین ۱۳۹۴، ساعت ۱۴:۵۹

      universal apps برای پلتفرم‌های مختلف مایکروسافت هست فقط. این مطلب یک قسمت اول هم داره: شروع کار با Apache Cordova در ویژوال استودیو #1. اونجا توضیح داده که این روش چند سکویی هست (یعنی فقط مختص به اندروید نیست). دسترسی به امکانات native دستگاه‌ها رو هم داره.

      البته فقط این روش نیست که الان استفاده از جاوا اسکریپت رو شروع کرده برای توسعه‌ی برنامه‌های موبایل چندسکویی. شرکت تلریک هم اخیرا native script رو ارائه داده: http://www.telerik.com/nativescript

    • #
      ‫۹ سال و ۶ ماه قبل، شنبه ۸ فروردین ۱۳۹۴، ساعت ۱۵:۵۴
      سلام.
      1-بله  البته در کنار html5 وcss ، هدف اصلی Cordova هم همین است .در مقالات قبلی گفته شد که قرار است یک وب اپلیکیشن را در  Cordova Container بسته بندی کنیم .
      2-این قسمت   و اینجا را مطالعه کنید . بنده کار نکردم . ولی فکر میکنم برای ساخت اپلیکیشن‌های همگانی ویندوز استفاده میشوند
      3-خیر این از زیان سی شارپ استفاده نخواهد شد.هدف Cordova این نیست.
      4-مطمئنا نمیتواند برابری کند حداقل در زمان حال (مزایا و معایب خود را دارد ). اگر علاقه مند به توسعه پلاگین‌های Cordova باشید باز هم نیاز است از زبان بومی آن پلتفرم استفاده کنید.
      • #
        ‫۹ سال و ۶ ماه قبل، شنبه ۸ فروردین ۱۳۹۴، ساعت ۱۷:۱۰
        آیا از لحاظ کاربردی و قابلیت و توسعه ، بین زمرین  و  cordova تفاوتی هست ؟  آیا مایکروسافتی که قصد خرید  زمرین رو داشت الان بعنوان یک رقیب  cordova  رو معرفی کرده یا اینکه کارکرد متفاوتی دارند ؟
        • #
          ‫۹ سال و ۶ ماه قبل، یکشنبه ۹ فروردین ۱۳۹۴، ساعت ۲۱:۲۸
          با تشکر از مطلب آموزنده شما
          Xamarin و Cordova رو نمیشه با هم مقایسه کرد
          Xamarin از زبان #C برای موبایل استفاده میکنه که البته زحمت کامپایل Mono بر عهده داره(Mono یک کاماپلر C# برای لینوکس  و MonoToch برای IOS). و البته پولی
          Cordova  با استفاده از Javascript و Html5 اینکارو انجا میده
  • #
    ‫۹ سال و ۲ ماه قبل، سه‌شنبه ۱۳ مرداد ۱۳۹۴، ساعت ۰۳:۵۸
    سلام
    من Visual Studio Tools for Apache Cordova CTP3.1 رو کامل نصب کردم 
    اون پیغام Getting started with Visual Studio رو هم نشون داد ولی موقع اجرا با Ripple یا build پروژه با پیغام زیر مواجه میشم و برنامه اجرا نمیشه و  هیچ اروری هم تو Error List نیست 
    ممنون میشم اگه راهنمایی کنید
    ------ Build started: Project: BlankCordovaApp4, Configuration: Debug Android ------
    1>  GeneratedJavascript=scripts\index.js;scripts\index.js.map;scripts\platformOverrides.js;scripts\platformOverrides.js.map
    1>  D:\Project Dot Net\BlankCordovaApp4\BlankCordovaApp4>call "C:\Program Files (x86)\nodejs\"\nodevars.bat 
    1>  Your environment has been set up for using Node.js 0.12.7 (ia32) and npm.
    1>  ------ Ensuring correct global installation of package from source package directory: C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 12.0\COMMON7\IDE\EXTENSIONS\MH2WEJOO.42Y\packages\vs-mda
    1>  ------ Name from source package.json: vs-mda
    1>  ------ Version from source package.json: 0.1.75
    1>  ------ Current globally installed version: 0.1.75
    1>  ------ Package already installed globally at correct version.
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    ========== Deploy: 0 succeeded, 0 failed, 0 skipped ==========

    • #
      ‫۹ سال و ۲ ماه قبل، سه‌شنبه ۱۳ مرداد ۱۳۹۴، ساعت ۱۷:۲۶
      همچین مشکلی برای بنده پیش نیامده و واقعیتش بنده ادامه ندادم کار با Apache Cordova  را ولی شما در ابتدای کار با چنین مشکلی برخوردید مسلما مربوط است به مراحل نصب و پیکربندی ! اگر مراحل را صحیح و قدم به قدم گفته شده در مقاله قبل جلو رفته باشید نباید مشکلی باشد.
    • #
      ‫۸ سال و ۱۰ ماه قبل، یکشنبه ۱۵ آذر ۱۳۹۴، ساعت ۰۲:۴۲
      من هم همین خطا رو گرفتم، با حذف node.js 0.12 و نصب نسخه 0.10 مشکل حل شد