آموزش API های بومی با استفاده از جاوا اسکریپت در NativeScript
آموزش API های بومی با استفاده از جاوا اسکریپت در NativeScript
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش API های بومی با استفاده از جاوا اسکریپت در NativeScript خواهیم پرداخت.
این بخش در مورد نمای کلی دسترسی به API های بومی با استفاده از JavaScript توضیح می دهد.
مارشالینگ
NativeScript Runtime ضمنی تبدیل نوع را برای هر دو سیستم عامل اندروید و iOS فراهم می کند. این مفهوم به عنوان مارشالینگ شناخته می شود. به عنوان مثال ، NativeScript- iOS paltform می تواند به طور ضمنی انواع داده های JavaScript و Objective-C را به طور یکسان تبدیل کند ، جاوا / کوتلین را می توان به راحتی به انواع پروژه ها و مقادیر جاوا اسکریپت ترسیم کرد. بگذارید نحوه انجام مارشال سازی در هر نوع را به طور خلاصه یک به یک درک کنیم.
مقادیر عددی
ما می توانیم به راحتی انواع داده های عددی iOS و اندروید را به شماره های جاوا اسکریپت تبدیل کنیم. تبدیل عددی ساده برای iOS به JavaScript در زیر تعریف شده است –
1 |
console.log(`max(7,9) = ${max(7,9)}`); |
تابع ()max بومی به شماره JavaScript تبدیل می شود.
محیط اندروید
جاوا انواع مختلف عددی مانند بایت ، کوتاه، int ،float ،double و long را پشتیبانی می کند. جاوا اسکریپت فقط نوع شماره دارد.
یک کلاس جاوا ساده نشان دهید که در زیر نشان داده شده است –
1 2 3 4 5 6 7 8 9 |
class Demo extends java.lang.Object { public int maxMethod(int a,int b) { if(a>b) { return a; } else { return b; } } } |
کد فوق شامل دو آرگومان عدد صحیح است. همانطور که در زیر نشان داده شده است ، می توانیم با استفاده از JavaScript شی کد بالا را فراخوانی کنیم
1 2 3 4 5 |
//Create an instance for Demo class var obj = new Demo(); //implicit integer conversion for calling the above method obj.maxMethod(7,9); |
رشته ها
رشته های اندروید در java.lang.string و رشته های iOS در NSSring تعریف شده اند. بگذارید ببینیم چطور می توان مارشال سازی را در هر دو سیستم عامل انجام داد.
اندروید
رشته ها تغییرناپذیر هستند اما بافرهای رشته ای از رشته های قابل تغییر پشتیبانی می کنند.
کد زیر مثالی برای نقشه برداری ساده است –
1 2 3 4 5 6 7 8 |
//Create android label widget var label = new android.widget.Label(); //Create JavaScript string var str = "Label1"; //Convert JavaScript string into java label.setText(str); // text is converted to java.lang.String |
کلاس بولی در java.lang.Boolean تعریف شده است. این کلاس یک مقدار بولیان را در یک شی قرار می دهد. ما می توانیم بولین را به راحتی به رشته و بالعکس تبدیل کنیم. مثال ساده به شرح زیر تعریف شده است –
1 2 3 4 5 6 7 8 |
//create java string let data = new java.lang.String('NativeScript'); //map java String to JavaScript string, let result = data.startsWith('N'); //return result console.log(result);// true |
محیط iOS
کلاس NSString تغییر ناپذیر است اما زیر کلاس NSMutableString غیر قابل تغییر است. این کلاس شامل مجموعه ای از روش ها برای کار با رشته ها است. به شرح زیر اعلام شده است –
1 |
class NSString : NSObject |
همانطور که در زیر نشان داده شده است ، یک اعلامیه هدف ساده c را در نظر بگیرید –
1 2 3 4 5 |
NSString *str = @"nativescript"; //convert the string to uppercase NSString *str1; str1 = [str uppercaseString]; NSLog(@"Uppercase String : %@\n", str1 ); |
NSStrings را می توان به راحتی در رشته های جاوا اسکریپت ترسیم کرد.
آرایه
این بخش در مورد چگونگی انجام مارشال سازی در آرایه ها توضیح می دهد. ابتدا یک مثال از محیط iOS می گیریم.
1 |
class NSArray : NSObject |
NSArray برای مدیریت مجموعه مرتب اشیا called به نام آرایه استفاده می شود. برای ایجاد آرایه ایستا استفاده می شود. NSMutableArray از زیر کلاس آن برای ایجاد آرایه های پویا استفاده می شود.
در نظر بگیرید که اشیا NSMutableArray می توانند با استفاده از حروف کوچک آرایه ای مانند تصویر زیر ایجاد شوند –
1 |
let array: NSArray = ["React","Vue","TypeScript"] |
اکنون، می توانیم این آرایه را به صورت JavaScript به صورت زیر نشان دهیم –
1 2 3 4 5 6 7 8 9 |
//create native array let nsArr = NSArray.arrayWithArray("React","Vue","TypeScript"]); //create simple javascript array let jsArr = ["Hello,World","NativeScript"]; //Now compare the two arrays, let compare = nsArr.isEqual(jsArr); console.log(comapre); |
با این کار خروجی نادرست است.
اعلان آرایه اندروید
آرایه های جاوا در java.util.Arrays تعریف می شوند. این کلاس شامل روشهای مختلفی برای دستکاری آرایه ها است. یک مثال در زیر نشان داده شده است –
1 2 3 4 5 6 |
//javascript array let data = [12,45,23,56,34,78,50]; //create java array let result = ns.example.Math.maxElement(data); console.log(result); |
کلاس ها و اشیا
کلاس ها و اشیا concepts مفاهیم اساسی برنامه نویسی شی گرا هستند. کلاس نمونه اولیه تعریف شده توسط کاربر است. شی an نمونه ای از کلاس است. کلاس مجموعه ای از خصوصیات یا متدها را نشان می دهد که در همه اشیا of از یک نوع مشترک است. بگذارید کلاسها و اشیا native بومی را برای هر دو محیط توسعه تلفن همراه درک کنیم.
Android Environment
کلاسهای جاوا و کوتلین شناسه های منحصر به فردی دارند که با نام کامل بسته مشخص می شوند.
به عنوان مثال
android.view.View – این یک کلاس اصلی رابط کاربری برای صفحه آرایی و تعامل با کاربر است. مطابق شکل زیر می توانیم به این کلاس در JavaScript دسترسی داشته باشیم –
1 |
const View = android.view.View; |
ابتدا کلاس را با استفاده از دستور زیر وارد می کنیم –
1 |
import android.view.View; |
بعد یک کلاس ایجاد کنید همانطور که در زیر آورده شده است –
1 2 3 4 5 6 |
public class MyClass { public static void staticMethod(context) { //create view instance android.view.View myview = new android.view.View(context); } } |
در همان کلاس فوق، با استفاده از زیر می توانیم به تابع JavaScript دسترسی پیدا کنیم.
1 |
const myview = new android.view.View(context); |
به همین ترتیب، ما می توانیم به بسته های java.lang به رابط ها ، ثابت ها و شمارش ها دسترسی پیدا کنیم.
محیط iOS
کلاسهای Objective-C در دو بخش interface وimplementation تعریف شده اند. تعریف کلاس با کلمه کلیدی interface و به دنبال آن نام رابط (کلاس) شروع می شود. در Objective-C، همه کلاسها از کلاس پایه موسوم به NSObject گرفته شده اند.
این کلاس فوق کلاس همه کلاسهای Objective-C است. کلاس Simple Circle مطابق شکل زیر تعریف شده است –
1 2 3 4 5 |
@interface Circle:NSObject { //Instance variable int radius; } @end |
همانطور که در زیر نشان داده شده، یک کلاس را با یک روش در نظر بگیرید –
1 2 3 |
@interface MyClass : NSObject + (void)baseStaticMethod; @end |
با استفاده از کد زیر می توان این کلاس را به javascript تبدیل کرد –
1 2 3 |
function MyClass() { /* native call */ }; Object.setPrototypeOf(MyClass, NSObject); BaseClass.baseStaticMethod = function () { /* native call */ }; |
برای تأیید اگر یک شی inher از یک کلاس داده شده باشد، از عملگر JavaScript exampleof استفاده می شود. این را می توان تعریف کرد –
1 2 |
var obj = MyClass.alloc().init(); // object creation console.log(obj instanceof NSObject); //return true |
نمونه های Objective-C با استفاده از روش های تخصیص، init یا جدید ایجاد می شوند. در مثال بالا ، ما می توانیم به راحتی با استفاده از روش جدید به صورت زیر مقدار اولیه را ایجاد کنیم –
1 |
var obj = MyClass.new ()؛ |
به همین ترتیب، می توانید به روش ها و خصوصیات استاتیک دسترسی پیدا کنید.
لیست جلسات قبل آموزش NativeScript
- آموزش NativeScript
- معرفی NativeScript
- آموزش نصب NativeScript
- آموزش معماری NativeScript
- آموزش برنامه Angular در NativeScript
- آموزش تمپلیت ها در NativeScript
- آموزش ویجت ها در NativeScript
- آموزش ظروف طرح بندی در NativeScript
- آموزش پیمایش در NativeScript
- آموزش مدیریت رویدادها در NativeScript
- آموزش اتصال داده در NativeScript
- آموزش ماژول ها در NativeScript
- آموزش پلاگین ها در NativeScript
دیدگاه شما