欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

android混合開發(fā)框架,Android框架

android h5 混合開發(fā)的應(yīng)用軟件有哪些

一、Adobe Edge

為吉安等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及吉安網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計制作、做網(wǎng)站、吉安網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

目前還處于預(yù)覽階段的Adobe

Edge是用HTML5、CSS、JavaScript開發(fā)動態(tài)互動內(nèi)容的設(shè)計工具。內(nèi)容可以同時兼容移動設(shè)備和桌面電腦。Edge的一個重要功能是

Web工具包界面,方便確保頁面在不同瀏覽器中的架構(gòu)一致性,此外Edge還將整合TypeKit這樣的字體服務(wù)。

動畫和圖形可以添

加到HTML元素中,程序也能通過Edge自身的代碼片段庫或者JavaScript代碼進行擴展。動畫可以在獨立的時間線上進行嵌套,還能實現(xiàn)互動功

能。符合可以服用并通過API和代碼片段控制。通過Edge設(shè)計的內(nèi)容可以兼容iOS和Android設(shè)備,也可以運行在火狐、Chrome、

Safari和IE9等主流瀏覽器。

二、Adobe Dreamweaver CS6

Adobe

Dreamweaver CS6作為一個Web設(shè)計軟件,提供了對HTML網(wǎng)站和移動程序的可視化編輯界面。其Fluid

Grid排版系統(tǒng)整合CSS樣式表功能,提供自適應(yīng)版面的跨平臺兼容性。開發(fā)者可以完全實現(xiàn)Web設(shè)計的可視化操作,無需為代碼所困。

用戶不但還能在Live View中預(yù)覽,還提供多屏幕預(yù)覽功能。開發(fā)者可以通過MultiScreen預(yù)覽面板查看HTML5內(nèi)容的渲染效果。Live View通過WebKit渲染引擎支持HTML5。

三、Adobe ColdFusion 10

ColdFusion是用來開發(fā)企業(yè)Web程序的服務(wù)器端技術(shù),通過Websockets、互動表單、視頻和地理標簽等HTML5技術(shù)創(chuàng)建富媒體用戶體驗。

四、Sencha Architect 2

在開發(fā)移動和桌面應(yīng)用的工具中,Sencha的定位是HTML5可視化應(yīng)用開發(fā)。開發(fā)團隊可以在一個單一集成的環(huán)境中完成應(yīng)用的設(shè)計、開發(fā)和部署。開發(fā)者還可以開發(fā)Sencha Touch2和Ext JS4 JavaScript應(yīng)用,并實時預(yù)覽。

五、Sencha Touch 2

Sencha Touch2是移動應(yīng)用框架,也被看作是Sencha的HTML5平臺。開發(fā)者可以用它開發(fā)面向iOS、Android和Blackberry、Kindle Fire等多種平臺的移動應(yīng)用。

六、Dojo Foundation Maqetta

來自于IBM的一個項目,Dojo Foundation Maqetta是為桌面和移動設(shè)備開發(fā)HTML5應(yīng)用的開源工具,支持在瀏覽器中查看HTML5界面。用戶體驗設(shè)計師可以通過拖放組裝UI樣板

七、微軟Visual Studio 2010 ServicePack 1

雖然一開始并不支持HTML5,但微軟在2011年三月發(fā)布的Visual Studio 2010 SP1中提供了IntelliSense,追加了針對HTML5的一些元素。

八、JetBrains WebStorm 4.0

作為擁有HTML編輯器的JavaScript集成開發(fā)環(huán)境,WebStorm4.0提供了開發(fā)web應(yīng)用的HTML5樣板。開發(fā)者可以在創(chuàng)建HTML文檔時可獲得對HTML5文件的支持。例如砍伐者鍵入。開發(fā)者還可以在chrome瀏覽器中實時預(yù)覽HTML文檔。

九、Google Web Toolkit

該開發(fā)工具用于開發(fā)瀏覽器應(yīng)用,但庫中支持很多HTML5功能。包括對客戶端或web存儲的支持。其他HTML5功能還包括支持Canvas可視化,以及音頻和視頻widget。

十、DCloud HBuilder

HBuilder是當(dāng)前最快的HTML開發(fā)工具,強大的代碼助手幫你快速完成開發(fā),最全的語法庫和瀏覽器兼容性數(shù)據(jù)讓瀏覽器碎片化不再頭痛。

android 混合開發(fā) 框架有哪些

Cordova是一個廣泛使用的Hybrid開發(fā)框架,它提供了一套js和Native交互規(guī)范

在Cordova的 SystemWebViewEngine 類中可以看到

private static void exposeJsInterface(WebView webView, CordovaBridge bridge) {

if ((Build.VERSION.SDK_INT Build.VERSION_CODES.JELLY_BEAN_MR1)) {

Log.i(TAG, "Disabled addJavascriptInterface() bridge since Android version is old.");

// Bug being that Java Strings do not get converted to JS strings automatically.

// This isn't hard to work-around on the JS side, but it's easier to just

// use the prompt bridge instead.

return;

}

webView.addJavascriptInterface(new SystemExposedJsApi(bridge), "_cordovaNative");

}

因此當(dāng)Android系統(tǒng)高于4.2時,Cordova還是使用 addJavascriptInterface 這種方式,因為這個方法在高版本上安全而且簡單,低于4.2的時候,用什么方法呢?

答案是 WebChromeClient.onJsPrompt 方法

WebView可以設(shè)置一個 WebChromeClient 對象,它可以處理js的3個方法

onJsAlert

onJsConfirm

onJsPrompt

這3個方法分別對應(yīng)js的 alert 、 confirm 、 prompt 方法,因為只有 prompt 接收返回值,所以js調(diào)用一個Native方法后可以等待Native返回一個參數(shù)。下面是 cordova.js 中的一段代碼:

/**

* Implements the API of ExposedJsApi.java, but uses prompt() to communicate.

* This is used pre-JellyBean, where addJavascriptInterface() is disabled.

*/

module.exports = {

exec: function(bridgeSecret, service, action, callbackId, argsJson) {

return prompt(argsJson, 'gap:'+JSON.stringify([bridgeSecret, service, action, callbackId]));

},

setNativeToJsBridgeMode: function(bridgeSecret, value) {

prompt(value, 'gap_bridge_mode:' + bridgeSecret);

},

retrieveJsMessages: function(bridgeSecret, fromOnlineEvent) {

return prompt(+fromOnlineEvent, 'gap_poll:' + bridgeSecret);

}

};

然后只要在 onJsPrompt 方法中使用 CordovaBridge 來處理js的prompt調(diào)用

/**

* Tell the client to display a prompt dialog to the user. If the client returns true, WebView will assume that the client will handle the prompt dialog and call the appropriate JsPromptResult method.

* p/

* Since we are hacking prompts for our own purposes, we should not be using them for this purpose, perhaps we should hack console.log to do this instead!

*/

@Override

public boolean onJsPrompt(WebView view, String origin, String message, String defaultValue, final JsPromptResult result) {

// Unlike the @JavascriptInterface bridge, this method is always called on the UI thread.

String handledRet = parentEngine.bridge.promptOnJsPrompt(origin, message, defaultValue);

if (handledRet != null) {

result.confirm(handledRet);

} else {

dialogsHelper.showPrompt(message, defaultValue, new CordovaDialogsHelper.Result() {

@Override

public void gotResult(boolean success, String value) {

if (success) {

result.confirm(value);

} else {

result.cancel();

}

}

});

}

return true;

}

Flutter(六)Android與Flutter混合開發(fā)(Hybird)

如果我們目前的項目是Android的,但是接下來我們希望部分頁面可以使用Flutter進行開發(fā),甚至我們希望在Native頁面中嵌入FlutterUI組件,那么我們該如何實現(xiàn)呢?

假設(shè)你現(xiàn)在Android項目的目錄的結(jié)構(gòu)是這樣的

這時候如果你想創(chuàng)建一個Flutter模塊,使得Android模塊和Flutter模塊之間可以進行交互,我們可以通過Android Studio新建一個Flutter Module,具體過程是:File — New — New Module ,之后選擇Flutter Module,指定Project Location的路徑為

也就是說,最終你的項目結(jié)構(gòu)會是這樣的

接下來在Android Module的 build.gradle 文件中添加flutter依賴

先創(chuàng)建一個Flutter頁面

這里比較重要的是 window.defaultRouteName 這個字段,這個字段可以接收從Native傳遞過來的參數(shù) (下文我們會介紹原生傳遞參數(shù)的方法),也就是說通過這個字段我們就可以進行Flutter頁面的路由的分發(fā)

我們可以直接在Android的 MainActivity 中啟動一個 FlutterActivity ,這里的 initialRoute 方法中傳遞的參數(shù)就對應(yīng)Flutter層的 window.defaultRouteName

注意:需要在 AndroidManifest.xml 注冊 FlutterActivity

自己創(chuàng)建一個 FlutterAppActivity 繼承自 FlutterActivity

在 MainActivity 中啟動 FlutterAppActivity (另外別忘了在 AndroidManifest.xml 中注冊 FlutterAppActivity )

兩種啟動方式的區(qū)別

如果單純只是想打開一個Flutter頁面,兩種方式實際上基本沒有太大區(qū)別,第一種方式也許還會更簡單一點。但是,在Flutter開發(fā)中,我們往往還需要開發(fā)一些Native插件供Flutter調(diào)用,如果使用復(fù)寫 FlutterActivity 的方式更有利于我們在 FlutterActivity 中注冊我們的Native插件,所以實際開發(fā)中一般推薦使用第二種方式

擴展思考

initialRoute 從名稱上看起來是Flutter提供給我們進行Native與Flutter交互的路由跳轉(zhuǎn)的,但是實際上他就是一個字符串,我們不僅僅可以傳遞一個路由名稱,有時候我們也可以通過這個參數(shù)傳遞一串JSON數(shù)據(jù),然后在Flutter端進行解析,這樣我們就可以通過這個參數(shù)做更多的事情

activity_main.xml

FrameLayout 用于承載Flutter組件

MainActivity.java

使用 FragmentManager 將 FlutterFragment 添加到 FrameLayout 容器中

運行結(jié)果

上半部分是原生的TextView,下半部分是Flutter的Text組件

本節(jié)主要介紹了Native和Flutter之間的頁面跳轉(zhuǎn),以及同一個頁面中Native與Flutter組件的組合。接下來會介紹如何編寫Android插件與Flutter進行數(shù)據(jù)交互

android 混合開發(fā) 用什么框架好

Cordova是一個廣泛使用的Hybrid開發(fā)框架,它提供了一套js和Native交互規(guī)范

在Cordova的 SystemWebViewEngine 類中可以看到

private static void exposeJsInterface(WebView webView, CordovaBridge bridge) {

if ((Build.VERSION.SDK_INT Build.VERSION_CODES.JELLY_BEAN_MR1)) {

Log.i(TAG, "Disabled addJavascriptInterface() bridge since Android version is old.");

// Bug being that Java Strings do not get converted to JS strings automatically.

// This isn't hard to work-around on the JS side, but it's easier to just

// use the prompt bridge instead.

return;

}

webView.addJavascriptInterface(new SystemExposedJsApi(bridge), "_cordovaNative");

}

因此當(dāng)Android系統(tǒng)高于4.2時,Cordova還是使用 addJavascriptInterface 這種方式,因為這個方法在高版本上安全而且簡單,低于4.2的時候,用什么方法呢?

答案是 WebChromeClient.onJsPrompt 方法

WebView可以設(shè)置一個 WebChromeClient 對象,它可以處理js的3個方法

onJsAlert

onJsConfirm

onJsPrompt

這3個方法分別對應(yīng)js的 alert 、 confirm 、 prompt 方法,因為只有 prompt 接收返回值,所以js調(diào)用一個Native方法后可以等待Native返回一個參數(shù)。下面是 cordova.js 中的一段代碼:

/**

* Implements the API of ExposedJsApi.java, but uses prompt() to communicate.

* This is used pre-JellyBean, where addJavascriptInterface() is disabled.

*/

module.exports = {

exec: function(bridgeSecret, service, action, callbackId, argsJson) {

return prompt(argsJson, 'gap:'+JSON.stringify([bridgeSecret, service, action, callbackId]));

},

setNativeToJsBridgeMode: function(bridgeSecret, value) {

prompt(value, 'gap_bridge_mode:' + bridgeSecret);

},

retrieveJsMessages: function(bridgeSecret, fromOnlineEvent) {

return prompt(+fromOnlineEvent, 'gap_poll:' + bridgeSecret);

}

};

然后只要在 onJsPrompt 方法中使用 CordovaBridge 來處理js的prompt調(diào)用

/**

* Tell the client to display a prompt dialog to the user. If the client returns true, WebView will assume that the client will handle the prompt dialog and call the appropriate JsPromptResult method.

* p/

* Since we are hacking prompts for our own purposes, we should not be using them for this purpose, perhaps we should hack console.log to do this instead!

*/

@Override

public boolean onJsPrompt(WebView view, String origin, String message, String defaultValue, final JsPromptResult result) {

// Unlike the @JavascriptInterface bridge, this method is always called on the UI thread.

String handledRet = parentEngine.bridge.promptOnJsPrompt(origin, message, defaultValue);

if (handledRet != null) {

result.confirm(handledRet);

} else {

dialogsHelper.showPrompt(message, defaultValue, new CordovaDialogsHelper.Result() {

@Override

public void gotResult(boolean success, String value) {

if (success) {

result.confirm(value);

} else {

result.cancel();

}

}

});

}

return true;

}

移動端app開發(fā),原生開發(fā)與混合開發(fā)的區(qū)別?

原生開發(fā)

?原生開發(fā)是在Android、IOS移動平臺上利用各自的開發(fā)語言、開發(fā)API、開發(fā)工具進行App軟件開發(fā)。例如Android是利用Java或者kotlin,使用Eclipse、Android studio、idea等工具開發(fā);IOS是利用Objective-C或者Swift,使用Xcode工具等進行開發(fā)。

原生開發(fā)的優(yōu)點:

可訪問手機所有功能(如GPS、攝像頭等)、可實現(xiàn)功能齊全;

運行速度快、性能高,絕佳的用戶體驗;

支持大量圖形和動畫,不卡頓,反應(yīng)快;

比較快捷地使用設(shè)備端提供的接口,處理速度上有優(yōu)勢。

原生開發(fā)的缺點:

開發(fā)周期長; ?

制作費用高昂,成本較高; ?

可移植性比較差,一款原生的App,Android和IOS都要各自開發(fā),同樣的邏輯、界面要寫兩套; ?

內(nèi)容限制(App ? Store限制); ?

獲得新版本時需重新下載應(yīng)用更新。

混合開發(fā)

混合開發(fā),是指在開發(fā)一款A(yù)pp產(chǎn)品的時候,為了提高效率、節(jié)省成本而利用原生與H5的開發(fā)技術(shù)的混合應(yīng)用。通俗點來說,這就是網(wǎng)頁的模式,通常由“H5云網(wǎng)站+APP應(yīng)用客戶端”;兩部分構(gòu)成。

混合開發(fā)是一種取長補短的開發(fā)模式,原生代碼部分利用插件或者其它框架為H5提供容器,程序主要的業(yè)務(wù)實現(xiàn)、界面展示都是利用與H5相關(guān)的技術(shù)進行實現(xiàn)的。很多APP都是利用混合開發(fā)模式而成的。 ?

混合開發(fā)優(yōu)點:

開發(fā)效率高,節(jié)約時間。同一套代碼Android和IOS基本上都可使用; ?

更新和部署比較方便,每次升級版本只需要在服務(wù)器端升級即可,不再需要上傳到App ? Store進行審核; ?

代碼維護方便、版本更新快,節(jié)省產(chǎn)品成本; ?

比web版實現(xiàn)功能多; ?

可離線運行。?

混合開發(fā)缺點: ?

網(wǎng)絡(luò)要求高:混合APP數(shù)據(jù)需要全部從服務(wù)器調(diào)取,每個頁面都需要重新下載,因此打開速度慢,網(wǎng)絡(luò)占用高,緩沖時間長,容易讓用戶反感。 ?

Android混合開發(fā)該怎么搞

Cordova是一個廣泛使用的Hybrid開發(fā)框架,它提供了一套js和Native交互規(guī)范

在Cordova的SystemWebViewEngine類中可以

看到私有靜態(tài)void exposeJsInterface(WebView webView,CordovaBridge橋){

if((Build.VERSION.SDK_INT Build.VERSION_CODES.JELLY_BEAN_MR1)){

Log.i(TAG,“自Android版本以來已禁用addJavascriptInterface()橋接?!保?

//錯誤是Java Strings不會自動轉(zhuǎn)換為JS字符串。

//在JS方面解決這個問題并不困難,但是更容易

使用提示橋來代替。

返回;

}

webView.addJavascriptInterface(新SystemExposedJsApi(橋), “_cordovaNative”);

}

因此當(dāng)Android系統(tǒng)高于4.2時,Cordova還是使用addJavascriptInterface這種方式,因為這個方法在高版本上安全而且簡單,低于4.2的時候,用什么方法呢?

答案是WebChromeClient.onJsPrompt方法

WebView可以設(shè)置一個WebChromeClient對象,它可以處理js的3個方法

onJsAlert

onJsConfirm

onJsPrompt

這3個方法分別對應(yīng)js的警告,確認,提示方法,因為只有提示接收返回值,所以js調(diào)用一個Native方法后可以等待Native返回一個參數(shù)。下面是cordova.js中的一段代碼:

/ **

*實現(xiàn)ExposedJsApi.java的API,但使用prompt()進行通信。

*這是在JellyBean之前使用的,其中addJavascriptInterface()被禁用。

* /

module.exports = {

exec:function(bridgeSecret,service,action,callbackId,argsJson){

return prompt(argsJson,'gap:'+ JSON.stringify([bridgeSecret,service,action,callbackId]));

},

setNativeToJsBridgeMode:function(bridgeSecret,value){

prompt(value,'gap_bridge_mode:'+ bridgeSecret);

},

retrieveJsMessages:function(bridgeSecret,fromOnlineEvent){

return prompt(+ fromOnlineEvent,'gap_poll:'+ bridgeSecret);

}

};

然后只要在onJsPrompt方法中使用CordovaBridge來處理js的提示調(diào)用

/ **

*告訴客戶端向用戶顯示提示對話框。如果客戶端返回true,則WebView將假定客戶端將處理提示對話框并調(diào)用相應(yīng)的JsPromptResult方法。

* p /

*由于我們出于自己的目的黑客提示,我們不應(yīng)該為此目的使用它們,也許我們應(yīng)該破解console.log來代替!

* /

@Override

public boolean onJsPrompt(WebView視圖,String origin,String message,String defaultValue,final JsPromptResult result){

//與@JavascriptInterface橋不同,此方法始終在UI線程上調(diào)用。

String processedRet = parentEngine.bridge.promptOnJsPrompt(origin,message,defaultValue);

if(processedRet!= null){

result.confirm(processedRet);

} else {

dialogsHelper.showPrompt(message,defaultValue,new CordovaDialogsHelper.Result(){

@

Override public void gotResult(boolean success,String value){

if(success){

result.confirm(value);

} else {

result.cancel( );

}

}

});

}

return true;

}

當(dāng)前標題:android混合開發(fā)框架,Android框架
分享鏈接:http://aaarwkj.com/article38/dssjpsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)頁設(shè)計公司、標簽優(yōu)化、做網(wǎng)站、外貿(mào)建站、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
人妻露脸国语对白字幕| 国产精品国产成人免费看| 黄片大全视频在线免费观看| 亚洲一区二区三区精品电影网| 国产av无毛一区二区三区| 亚洲中文无码亚洲人vr在线 | 欧美日韩国产另类在线视频| 亚洲中文无码亚洲人vr在线| 国产精品一区二区夜夜夜| 濑亚美莉在线观看一区二区三区| 国产二区三区在线播放| 国产91精品网站在线| 国产欧美成人精品第一区| 日本电影在线看一区二区| 欧美精品一区二区亚洲| 欧美日在线观看加勒比| 亚洲视一区二区三区四区| 欧美精品熟妇乱黑人最大| 欧美成人精品欧美一级乱| 久久精品国产亚洲av麻| 国产老熟女高潮视频| 午夜性色福利在线播放| 亚洲欧美日韩特级黄片| 99精品国产麻豆一区二区三区| 黄片超刺激在线看在线| 日本的一级片一区二区| 成人黄色动漫在线播放| 中文字幕乱码人妻一二三| 扒开女性毛茸茸的视频| 精品人妻一区二区三区四| 美女后入式在线观看| 精品少妇高潮蜜臀av| 色婷婷国产精品高潮呻吟| 国产综合一区二区三区视频| 国产美女直播亚洲一区色| 麻豆专区一区二区三区| 激情四射五月天亚洲婷婷| 欧美高清一区二区在线播放| 一区二区三区国产不卡| 国产精品盗摄一区二区三区| 国产精品熟女亚洲av|