<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          NativeScript跨平臺(tái)移動(dòng)端開(kāi)發(fā)

          聯(lián)合創(chuàng)作 · 2023-09-24 22:32

          NativeScript 可以使用 Javascript,CSS, XML 創(chuàng)建真正的 Native 跨平臺(tái)應(yīng)用,支持 iOS Android,NativeScript 將您的跨平臺(tái)代碼翻譯成目標(biāo)平臺(tái)的代碼。

          UI 使用 XML 描述,CSS 樣式,在編譯時(shí)將 UI 轉(zhuǎn)化成本地原生代碼,最終得到正在的 Native 原生應(yīng)用。

          Telerik 公開(kāi)了用于創(chuàng)建安卓、iOS和Windows Universal跨平臺(tái)原生應(yīng)用的框架,NativeScript 的公共訪(fǎng)問(wèn)權(quán)限。

          NativeScript既不是一種新型的JavaScript語(yǔ)言,也不是原生功能的封裝器,它包括一個(gè)JavaScript運(yùn)行時(shí)環(huán)境和一種將 JavaScript調(diào)用轉(zhuǎn)化為原生調(diào)用的機(jī)制。用JavaScript(或TypeScript,CoffeeScript等)語(yǔ)言編寫(xiě)應(yīng)用,之后在安 卓平臺(tái)用V8,在iOS和Windows Phone上用WebKit JavaScriptCore解釋?xiě)?yīng)用。然后,NativeScript運(yùn)行時(shí)環(huán)境找到原生的目標(biāo)API,將JS數(shù)據(jù)類(lèi)型轉(zhuǎn)化為相應(yīng)的原生類(lèi)型,然后調(diào)用原生API,并將得到的結(jié)果值返回,具體流程如下圖所示:

          舉例來(lái)說(shuō),在安卓平臺(tái)上創(chuàng)建文件對(duì)象var file = new java.io.File(path);的步驟如下:

          • 用V8解釋代碼

          • 根據(jù)原數(shù)據(jù)確定相應(yīng)的原生方法調(diào)用。原數(shù)據(jù)是在各個(gè)平臺(tái)上預(yù)先構(gòu)建的提供類(lèi)型和方法簽名的全部可用API集合。

          • 類(lèi)型轉(zhuǎn)換模塊將JavaScript的String類(lèi)型轉(zhuǎn)換為一個(gè)java.lang.String對(duì)象

          • 運(yùn)行時(shí)環(huán)境為java.io.File創(chuàng)建一個(gè)代理對(duì)象

          • 通過(guò)該代理將對(duì)原有JS File對(duì)象的調(diào)用委托給相應(yīng)的Java實(shí)例

          據(jù)Telerik介紹,與純?cè)a相比NativeScript運(yùn)行時(shí)環(huán)境會(huì)帶來(lái)大概10%的性能損失。

          NativeScript可以將其所支持平臺(tái)上的任意原生API作為目標(biāo),包括傳感器接口A(yíng)PI和用Objective C,Java或.NET編寫(xiě)的第三方庫(kù)。UI組件是原生的,UI事件由在JavaScript代碼中聲明的原生處理程序處理,如View.OnClickListener,UIControl.addTarget

          為了避免開(kāi)發(fā)者需要對(duì)三個(gè)支持的平臺(tái)有深入的理解,該框架包含了一個(gè)抽象與原生代碼連接的NativeScript模塊層(NativeScript Modules Layer,NML), 可以自動(dòng)將JavaScript調(diào)用轉(zhuǎn)化為原生調(diào)用。NML包含如下模 塊:Application,Camera,Color,Console,Data,F(xiàn)ile System,HTTP,Imaging,Local Settings,Location,Timer,UI。開(kāi)發(fā)者并未受限于只能使用NML,也可以訪(fǎng)問(wèn)任意原生API。

          NativeScript其它一些功能簡(jiǎn)單列示如下:

          • 當(dāng)前支持平臺(tái):iOS7+,安卓4.2+。預(yù)計(jì)將在4月實(shí)現(xiàn)Windows Phone的支持。對(duì)安卓早期版本的支持也將很快到來(lái)。

          • iOS平臺(tái)的編譯可以在遠(yuǎn)程完成,無(wú)需Mac電腦或iOS工具

          • 開(kāi)發(fā)工作可以在任意IDE中完成。

          • 支持任意跨瀏覽器的JavaScript庫(kù)。

          • 支持CSS。

          • 支持MVVM。

          • 即時(shí)支持新的原生平臺(tái)。

          部分介紹來(lái)自 InfoQ

          瀏覽 11
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲精品无码三级片 | 国产精品特级s毛片 | 日本一区二区三区在线观看 | 国产一级片操逼视频 | 99在线资源 |