1. <source id="nejs2"></source>
  2. <video id="nejs2"></video>
    <source id="nejs2"></source>
          1. 首頁 > js筆記 > js訪問cloud接口的簡單介紹

            js訪問cloud接口的簡單介紹

            更新:

            本文目錄一覽:

            如何用JS調用幾十萬原生API

            《近匠》HBuilder:如何用JS調用幾十萬原生API?

             近匠訪談開發工具HBuilder王安DCloudHTML5

            摘要:《近匠》第25期:HBuilder是DCloud開發的一套Web開發IDE,它通過完整的語法提示和代碼輸入法、代碼塊等,大幅提升HTML、JS、css的開發效率。更有意思的是,它可以利用JS調用原生API。

            CSDN:請講講團隊和您以往的從業經歷?

            DCloud CEO王安:我們團隊從03年起開始做手機App,從J2me、Symbian、Win mobile、Brew一直做到現在的Android、iOS和WP。之前一直在為企業市場提供跨平臺手機App的無線中間件。

            后來我們看好HTML5的前途,而且也經不住toC市場的誘惑,就毅然出來二次創業。成立了 DCloud.io,開始做基于HTML5的生態系統服務,包括開發工具和云服務。

            我們是W3C的會員,也是HTML5中國產業聯盟的發起單位。我們是一個典型的輕團隊,人不多,但極客化。我們的合伙人之一王淮也在Facebook工作了很久,給我們帶來了很多硅谷的模式。

            CSDN:為什么要做HBuilder這樣一款工具?

            王安:人稱HTML5是“性、工、能”缺失,其中“工”指工具不給力,確實如此。

            任何主流編程語言,都有優秀的開發IDE,不管是java、.net、Obj-C,但HTML5領域卻一直在用低效的文本編輯器開發。我個人用了十幾年文本編輯器,對比我熟悉的其他語言的IDE,效率也實在讓我受不了。我們就動手開發了HBuilder。

            HTML十幾年前初生時,是簡單的標記語言,確實文本編輯器足矣。那時候寫頁面的人都不被視為真正的程序員。但時代不同了,現在JS、css已經發展為真正的編程語言,一個工程會非常龐大,此時沒有IDE會很低效。就像用文本編輯器寫java或Obj-C一樣,效率比專業IDE差很多。

            過去也確實沒有太好的HTML5 IDE,更不用提免費的好工具。因為web IDE開發確實很困難,web語法庫沒有統一標準,月月更新,JS是無類型的動態語言……

            但是有問題,就會有解決問題的人。所以我們花費大力氣,建立最全的語法庫和瀏覽器兼容數據庫,開發動態JS解析引擎,開源框架語法庫。并且我們在開發效率提升上下了非常大的功夫,快是HBuilder最大的特點,能提升數倍開發效率。

            另一方面,HTML5的重要價值是開發手機App,HBuilder為開發者提供移動App開發的全套支持,支持插上數據線真機聯調,不需xcode等原生開發環境就能打包手機App。此外,我們有項創新的技術是JS調用幾十萬原生API。

            CSDN:HBuilder是針對移動應用的哪一個環節?在這個環節中,現在是一種什么狀況?格局是什么樣的?

            王安:使用HTML5、JS、css開發跨平臺手機App,這類工具其實之前已經有Phonegap、Titanium。從品類相比,Phonegap只有Runtime沒有IDE,Titanuim的IDE是為其特殊API而制作的專有工具。但HBuilder是一個通用的HTML5開發IDE且又內置了手機runtime。也就是開發者只需要HBuilder就夠了,PC web、Mobile web、App,一個工具一套代碼。

            我們推崇一個理念叫“響應式應用”:一套代碼根據不同運行環境調用不同能力來優化用戶體驗。比如文本框,在普通瀏覽器下就是一個文本輸入框,在Chrome瀏覽器下運行時加個判斷調Chrome的語音輸入,而運行在App模式下,則再加一個判斷調用原生的語音識別SDK,比如plus.speech。這樣一個應用可以根據設備的不同而最大化的優化用戶體驗,這種模式很有魅力,對用戶而言體驗更好,對開發者而言成本更低。

            當然,比其他同類產品更神奇的一點是,HBuilder里能通過JS代碼的寫法操作幾十萬原生API,即Obj-C和Android原生的對象。

            CSDN:HTML5在跨平臺App開發上有哪些問題?

            王安:前景美好,但卻有四個致命缺點阻礙它的爆發,就是“性、工、能”缺失,碎片化嚴重。相對于原生,HTML5的App性能低,工具差,能力弱。原生雖然不跨平臺,但HTML5的瀏覽器兼容性也讓開發者撓頭。HBuilder為了解決這些難題做了很多努力。

            1. 先說工具

            HBuilder大幅提升了HTML5開發效率。并且也擁有最全且實時更新的HTML5新語法庫。瀏覽器更新版本后一周內其新增的語法就可以被HBuilder提示出來。

            HBuilder追求快,還有一個目的,就是降低開發者對框架的依賴。PC Web里框架非常流行,很多框架簡化了開發。但是框架的簡化開發建立在性能下降的基礎上,手機上HTML5本來就慢,層層封裝后只會越來越慢。但開發者使用HBuilder會發現,在HBuilder里不用框架開發的速度,比用其他開發編輯器配合框架的速度,更快。

            目前主流HTML5開發工具都更新在沒有手機真機聯調等功能,HBuilder提供了這些功能才能有效的語法庫里幫助開發者開發手機App。

            2. 瀏覽器兼容性

            由于瀏覽器內核不同,自有擴展語法多,新語法增加速度快,導致碎片化很嚴重,而且是持續性的給開發者造成困擾。HBuilder里每個語法,都有瀏覽器兼容性說明,是目前最全的瀏覽器兼容數據庫。見下圖,-webkit-user-select這個屬性的值域all,IE和Firefox自然不支持,圖標為灰色。但同為webkit內核,Chrome支持;而Android瀏覽器不支持,圖標為灰色;Safari也只有7.0以上才支持,圖標是半亮。

            有人說手機上都是webkit內核瀏覽器,應該沒有兼容性問題。但上圖告訴開發者殘酷的真相:iOS、Safari、Android瀏覽器、Chrome安卓版,主流的3款手機瀏覽器一樣有兼容性問題。Google和Apple聯手打破IE的壟斷后,又開始分裂,Chrome去年另起了Blink引擎,開始獨立擴展語法。另外雖然Safari的Mac版和iOS版有點差別,但不多;而Chrome的Android版和Android系統自帶的瀏覽器完全是2個產品。作為開發者,我甚至有點懷念IE壟斷市場的日子。

            我們努力做出這個瀏覽器兼容庫,希望可以幫助到廣大開發者。

            3. 能力

            HTML5規范的好處是跨平臺的,但壞處是規范能力比原生差非常多。為了解決這個問題,我們推出了兩套方案:HTML5+的跨平臺規范和JS直調原生API。

            HTML5+的跨平臺規范:開發者常用的手機能力,封裝在HTMLplus.org規范里,包括二維碼、語音輸入等,比如在JS里輸入plus.barcode調用二維碼,plus.speech調用語音輸入。開發一次在不同手機上都可以運行。

            JS直調原生API:我們提供了plus.ios和plus.android這2個很神奇的對象,使得web開發者不用學習Obj-C,不用買Mac設備,就能在JS里調用原生對象。我們可以這么定義一個JS變量,但實際上是Obj-C對象:我們可以這么定義一個JS變量,但實際上是Obj-C對象:JS直調原生API:我們提供了plus.ios和plus.android這2個很神奇的對象,使得web開發者不用學習Obj-C,不用買Mac設備,就能在JS里調用原生對象。我們可以這么定義一個JS變量,但實際上是Obj-C對象:

            var a = plus.ios.implements("NSObject",{"authenticationChanged:":authenticationChanged});

            或者如下圖中的:var Intent = plus.android.import("android.content.Intent");其中的"android.content.Intent"是Android的原生類。這段代碼就是使用JS方式給在安卓手機桌面創建一個App快捷方式。

            這樣,使用HTML5編程的App,在能力方面就和原生一樣強大了。 以前用HTML5做的游戲都無法調用Game Center,O2O應用也調不了Passbook,現在這些都輕而易舉。我們相信這對于web工程師而言,是極大的能力解放,充滿機會的一扇新窗口!

            4. 性能

            HTML5應用的性能一直是這個產業發展的瓶頸。

            手機硬件比PC差、HTML5作為解釋性語言比原生的編譯型語言性能差、手機瀏覽器的默認控件樣式未優化導致需要在應用層重新封裝UI。這一系列問題疊加在一起,使得性能成為所有HTML5開發者心頭的痛。

            另外前端工程師大多長于UI,相比服務器工程師,他們的代碼性能也要低不少。比如前端工程師很習慣使用框架,框架層層封裝越來越慢,性能如何上的去。HBuilder在解決這個問題上也花費了很多心血:

            a. 調用原生繪制界面

            在HTML5+規范里有一個plus.ui的子集。一些原生樣式或動畫,比如翻頁動畫或下拉刷新,使用HTML5+JS+css模擬要寫很多代碼,執行起來很慢,此時通過plus.ui擴展就可以在窗體上設置一塊區域,交給原生繪制。性能可大幅提升。

            b. 性能第一的UI庫

            以前宣稱為手機優化的框架,其實都不是把性能作為產品取舍的第一優先,或者為了框架使用者方便、或者為了框架維護者方便而犧牲了執行性能。我們決定自己做一個。這個項目我們還在開發中,不久會上線。

            我們沒有把它稱為框架而是叫UI庫,是因為這里的控件都是使用最簡單的css樣式的,直接寫 class=”xxx”。相比于寫成data-role,然后在JS運行時才替換Dom,使用class的方式要高效的 多。

            控件含有的必要的JS代碼,也是本著性能優先的原則開發的,代碼極其精簡高效,沒有$等三方框架,但又可以跨手機瀏覽器。并且這套UI庫會和HBuilder的打包機、Runtime深度整合,做到更高性能的優化。

            CSDN:相對于編寫大量JS實現來說,HBuilder利用JS調用原生API,有哪些優點?

            王安:JS調用原生API,最大的優點,是大大強化了HTML5的能力,突破了瀏覽器的限制,原生有幾十萬API,數量遠多于HTML5。比如攔截Android來電。

            JS的執行效率肯定還是低于原生的,提升性能需要使用前述方案。

            這項技術對于JS程序員來講是非常友好易學的,他不需要學習原生語言和配置開發環境,只需要查詢每個原生對象是做什么用的,然后在JS的plus.ios或plus.andriod里把原生類名作為參數傳進去,就可以通過JS調用該原生對象的方法。

            我們還制作了一批常用原生代碼模板,包括創建快捷方式、登錄game center的樣例代碼已經預置在HBuilder里。

            CSDN:JS調用原生API,是如何實現的?

            王安:這個非常復雜,不同的api需要不同的方法,手機、云、IDE的共同配合。IDE的顯示代碼、打包機編譯、runtime實際運行這幾種情況下執行碼是不同的。

            CSDN:HTML5跨平臺開發領域的趨勢是怎么的?

            王安:HTML5的光明前途是毋庸置疑的,當Java被攔在iOS門外時、當終端和屏幕越來越多樣時,HTML5的簡單易用和跨平臺這些特點都代表了未來的方向。

            現在的問題僅僅是阻礙HTML5發展的那幾個難題,會在何時、會被哪些人解決。當性能、工具、能力、兼容性得到有效突破時,HTML5必將迎來發展爆發。

            CSDN:接下來針對HBuilder,Dcloud還有哪些計劃?

            王安:除了上面提到的高性能手機UI框架,HBuilder下一步會引入SNS和UGC,強化插件體系,聯合眾多開發者打造大家更滿意的工具和服務。我們很認真的開發著這個免費工具,也希望所有開發者都參與到這個工具的打造中來。目前HBuilder已經在 github.com/dcloudio上設立了3個開源項目,歡迎大家一起打造自己滿意的工具。

            轉載僅供參考,版權屬于原作者。祝你愉快,滿意請采納哦

            選擇Vue.js很火,請問能否整合進入APICloud中去開發使用

            avvw

            Apicloud + Vue2 + Vant(有贊前端)+ Webpack4打包,是一個采用Vue數據綁定特性和Apicloud手機操控能力相結合的APP開發框架,此框架并非采用Vue的SPA單頁面應用方式,而是遵從Apicloud的多頁面原生渲染效率方式,Vue+Webpack只是為了提供更佳的ES2015語法、模塊分割和數據綁定代碼體驗,彌補Apicloud本身無法應用在龐大工程協作的缺點。

            使用AVVW可以極速開發出流暢的商用級別APP,讓你輕松應付各種開發需求

            如何使用 APICloud 的端 API 連接到自己的服務器數據庫獲取數據

            看文檔,使用 api的ajax方法,傳入服務器的請求地址和參數,服務器返回json格式數據,然后js進行解析就可以了

            如何使用APICloud端API進行Http請求

            APICloud在端API中為您提供了全面的網絡訪問API,主要體現在ajax函數上。該函數的中文意思全稱為“跨域異步請求”,意味著使用該API可以不受標準JS中“同源策略”的限制,可在任意頁面中向任何域名地址發起數據請求,同時,該請求以非阻塞方式進行,不干擾UI渲染。

            具體使用方式:GET請求:api.ajax({ url:'', method:'get', cache: false, timeout: 30, dataType: 'json'},function(ret,err){ if (ret) { api.alert({msg:JSON.stringify(ret)}); } else { api.alert({ msg : ('錯誤碼:'+err.code+';錯誤信息:'+err.msg+'網絡狀態碼:'+err.statusCode) }); };});POST請求:api.ajax({ url: '', method: 'post', cache: false, timeout: 30, dataType: 'json', data: { values:{name: 'devlp', password: '123456'}, files:{file: 'fs://test.png'} }},function(ret,err){ if (ret) { api.alert({msg:JSON.stringify(ret)}); } else { api.alert({ msg : ('錯誤碼:'+err.code+';錯誤信息:'+err.msg+'網絡狀態碼:'+err.statusCode) }); };});ajax接口支持get、post、put、delete等http請求;同時post和put請求支持form表單提交、body提交、multipart提交,流提交;并且支持https請求;支持云+端一體安全加密傳輸。有關ajax更詳細的介紹以及使用,請參考幫助文檔部分的《API手冊》下的api對象中的ajax接口。

            頂部 久久久久99精品成人片毛片_黃色A片三級三級三級无码_日本不卡高清视频v中文字幕_高清欧美视频一区二区
            1. <source id="nejs2"></source>
            2. <video id="nejs2"></video>
              <source id="nejs2"></source>