آموزش API های بومی با استفاده از جاوا اسکریپت در NativeScript

3 سال پیش
آموزش API های بومی با استفاده از جاوا اسکریپت در NativeScript

آموزش API های بومی با استفاده از جاوا اسکریپت در NativeScript

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش API های بومی با استفاده از جاوا اسکریپت در NativeScript خواهیم پرداخت.

این بخش در مورد نمای کلی دسترسی به API های بومی با استفاده از JavaScript توضیح می دهد.

مارشالینگ

NativeScript Runtime ضمنی تبدیل نوع را برای هر دو سیستم عامل اندروید و iOS فراهم می کند. این مفهوم به عنوان مارشالینگ شناخته می شود. به عنوان مثال ، NativeScript- iOS paltform می تواند به طور ضمنی انواع داده های JavaScript و Objective-C را به طور یکسان تبدیل کند ، جاوا / کوتلین را می توان به راحتی به انواع پروژه ها و مقادیر جاوا اسکریپت ترسیم کرد. بگذارید نحوه انجام مارشال سازی در هر نوع را به طور خلاصه یک به یک درک کنیم.

مقادیر عددی

ما می توانیم به راحتی انواع داده های عددی iOS و اندروید را به شماره های جاوا اسکریپت تبدیل کنیم. تبدیل عددی ساده برای iOS به JavaScript در زیر تعریف شده است –

console.log(`max(7,9) = ${max(7,9)}`);

 

تابع ()max  بومی به شماره JavaScript تبدیل می شود.

محیط اندروید

جاوا انواع مختلف عددی مانند بایت ، کوتاه، int ،float ،double و long را پشتیبانی می کند. جاوا اسکریپت فقط نوع شماره دارد.

یک کلاس جاوا ساده نشان دهید که در زیر نشان داده شده است –

class Demo extends java.lang.Object {
   public int maxMethod(int a,int b) {
      if(a>b) {
         return a;
      } else {
         return b;
      }
   }
}

 

کد فوق شامل دو آرگومان عدد صحیح است. همانطور که در زیر نشان داده شده است ، می توانیم با استفاده از JavaScript شی کد بالا را فراخوانی کنیم

//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 تعریف شده اند. بگذارید ببینیم چطور می توان مارشال سازی را در هر دو سیستم عامل انجام داد.

اندروید

رشته ها تغییرناپذیر هستند اما بافرهای رشته ای از رشته های قابل تغییر پشتیبانی می کنند.

کد زیر مثالی برای نقشه برداری ساده است –

//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 تعریف شده است. این کلاس یک مقدار بولیان را در یک شی قرار می دهد. ما می توانیم بولین را به راحتی به رشته و بالعکس تبدیل کنیم. مثال ساده به شرح زیر تعریف شده است –

//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 غیر قابل تغییر است. این کلاس شامل مجموعه ای از روش ها برای کار با رشته ها است. به شرح زیر اعلام شده است –

class NSString : NSObject

 

همانطور که در زیر نشان داده شده است ، یک اعلامیه هدف ساده c را در نظر بگیرید –

NSString *str = @"nativescript"; 
//convert the string to uppercase
NSString *str1; 
str1 = [str uppercaseString]; 
NSLog(@"Uppercase String : %@\n", str1 );

 

NSStrings را می توان به راحتی در رشته های جاوا اسکریپت ترسیم کرد.

آرایه

این بخش در مورد چگونگی انجام مارشال سازی در آرایه ها توضیح می دهد. ابتدا یک مثال از محیط iOS می گیریم.

 

class NSArray : NSObject

 

NSArray برای مدیریت مجموعه مرتب اشیا called به نام آرایه استفاده می شود. برای ایجاد آرایه ایستا استفاده می شود. NSMutableArray از زیر کلاس آن برای ایجاد آرایه های پویا استفاده می شود.

در نظر بگیرید که اشیا  NSMutableArray می توانند با استفاده از حروف کوچک آرایه ای مانند تصویر زیر ایجاد شوند –

let array: NSArray = ["React","Vue","TypeScript"]

 

اکنون، می توانیم این آرایه را به صورت JavaScript به صورت زیر نشان دهیم –

//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 تعریف می شوند. این کلاس شامل روشهای مختلفی برای دستکاری آرایه ها است. یک مثال در زیر نشان داده شده است –

//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 دسترسی داشته باشیم –

const View = android.view.View;

 

ابتدا کلاس را با استفاده از دستور زیر وارد می کنیم –

import android.view.View;

 

بعد یک کلاس ایجاد کنید همانطور که در زیر آورده شده است –

public class MyClass {
   public static void staticMethod(context) {
      //create view instance
      android.view.View myview = new android.view.View(context);
   }
}

 

در همان کلاس فوق، با استفاده از زیر می توانیم به تابع JavaScript دسترسی پیدا کنیم.

const myview = new android.view.View(context);

 

به همین ترتیب، ما می توانیم به بسته های java.lang به رابط ها ، ثابت ها و شمارش ها دسترسی پیدا کنیم.

محیط iOS

کلاسهای Objective-C در دو بخش interface وimplementation تعریف شده اند. تعریف کلاس با کلمه کلیدی interface و به دنبال آن نام رابط (کلاس) شروع می شود. در Objective-C، همه کلاسها از کلاس پایه موسوم به NSObject گرفته شده اند.

این کلاس فوق کلاس همه کلاسهای Objective-C است. کلاس Simple Circle مطابق شکل زیر تعریف شده است –

@interface Circle:NSObject {
   //Instance variable
   int radius;
}
@end

 

همانطور که در زیر نشان داده شده، یک کلاس را با یک روش در نظر بگیرید –

@interface MyClass : NSObject 
+ (void)baseStaticMethod; 
@end

 

با استفاده از کد زیر می توان این کلاس را به javascript تبدیل کرد –

function MyClass() { /* native call */ }; 
Object.setPrototypeOf(MyClass, NSObject); 
BaseClass.baseStaticMethod = function () { /* native call */ };

 

برای تأیید اگر یک شی inher از یک کلاس داده شده باشد، از عملگر JavaScript exampleof استفاده می شود. این را می توان تعریف کرد –

var obj = MyClass.alloc().init(); // object creation 
console.log(obj instanceof NSObject); //return true

 

نمونه های Objective-C با استفاده از روش های تخصیص، init یا جدید ایجاد می شوند. در مثال بالا ، ما می توانیم به راحتی با استفاده از روش جدید به صورت زیر مقدار اولیه را ایجاد کنیم –

var obj = MyClass.new ()؛

 

به همین ترتیب، می توانید به روش ها و خصوصیات استاتیک دسترسی پیدا کنید.

 

منبع.

 

 

لیست جلسات قبل آموزش NativeScript

  1. آموزش NativeScript
  2. معرفی NativeScript
  3. آموزش نصب NativeScript
  4. آموزش معماری NativeScript
  5. آموزش برنامه Angular در NativeScript
  6. آموزش تمپلیت ها در NativeScript
  7. آموزش ویجت ها در NativeScript
  8. آموزش ظروف طرح بندی در NativeScript
  9. آموزش پیمایش در NativeScript
  10. آموزش مدیریت رویدادها در NativeScript
  11. آموزش اتصال داده در NativeScript
  12. آموزش ماژول ها در NativeScript
  13. آموزش پلاگین ها در NativeScript
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه