原生的html組件,如何創建HTML5與原生UI組件混合的移動應用程序

本文將介紹如何使用Trigger.io創建原生的頂部欄、標簽欄、以及HTML/CSS/JavaScript的混合型移動應用程序。

以后我們將添加更多的原生UI組件到Trigger.io,但現在你只需要使用web技術就可以在IOS和Android上創建漂亮而流暢的移動應用。

d35f57fcf410432970338dfc920e5cdf.png

c70446166e9c4e309c431219237815ef.png

這是一個簡單的菜譜應用程序的屏幕截圖,我們使用Trigger.io提供的原生UI組件,我們將向你展示該應用程序是如何構建的:

配置Trigger.io,并添加頂部欄和標簽欄到應用程序中

給原生控件添加樣式

用JavaScript給控件添加監聽器

第一步:創建App并添加頂部欄

你需要使用Trigger.io生成App的基本框架,然后使用web技術來獲取原生的UI組件。因此,在開始之前,你需要先進行注冊簽約。這里有完整的文檔教你如何設置Trigger.io,一旦你完成設置只需要運行:

forge create

這時會提示你給app命名,命令完成后會自動生成app的項目文件夾。

讓我們開始給app添加一個頂部欄,之后在Android模擬器上運行測試。

將src/config.json文件的代碼替換成以下代碼:

{

"author": "amir@trigger.io",

"config_version": "2",

"description": "View ingredients for your favorite recipes",

"modules": {

"is": true,

"logging": {

"level": "INFO"

},

"prefs": true,

"request": {

"permissions": []

},

"tools": true,

"topbar": true

},

"name": "Recipe list",

"platform_version": "v1.3",

"version": "0.1"

}

在模塊配置中設置頂部欄可用:“topbar”: true。

然后修改一下index.html

Hello world!

現在你可以使用forge命令運行并測試app了:

forge build

forge run android --android.sdk ~/Desktop/android-sdk-macosx

29c3d7f63428973582a01533327cc89e.png

第二步:配置標簽欄

在app的底部添加標簽欄也很容易,你只需要在src/config.json(模塊配置)中加上“tabbar”: true,如下:

{

"author": "amir@trigger.io",

"config_version": "2",

"description": "View ingredients for your favorite recipes",

"modules": {

"is": true,

"logging": {

"level": "INFO"

},

"prefs": true,

"request": {

"permissions": []

},

"tools": true,

"topbar": true,

"tabbar": true

},

"name": "Recipe list",

"platform_version": "v1.3",

"version": "0.1"

}

但是,在運行之前,我們還需要添加一些按鈕和偵聽器。這樣,當點擊每個選項卡時,我們就可以執行JavaScript來處理頁面的切換。

讓我們添加一個JavaScript文件,命名為src/js/main.js:

// A helper function so that when we change tab the web view scrolls to the top of the new page

var scrollTop = function () {

setTimeout(function () {

document.body.scrollTop = 0;

}, 0);

}

// This is the method we are going to call when a tab button is pressed

var updateRecipes = function (search) {

scrollTop();

// For now just pop up a message with the tab which was pressed

alert(search);

}

// Set a better title for the topbar

forge.topbar.setTitle("Recipe shopping list");

// Add our 3 tab buttons to the tabbar and add press listeners

var starterButton = forge.tabbar.addButton({

text: "Starters",

icon: "img/tomato.png",

index: 0

}, function (button) {

button.onPressed.addListener(function () {

updateRecipes("starter");

});

// This is the default button, activate it immediately

button.setActive();

updateRecipes("starter");

});

var mainButton = forge.tabbar.addButton({

text: "Mains",

icon: "img/pizza.png",

index: 1

}, function (button) {

button.onPressed.addListener(function () {

updateRecipes("main");

});

});

var dessertButton = forge.tabbar.addButton({

text: "Desserts",

icon: "img/strawberry.png",

index: 2

}, function (button) {

button.onPressed.addListener(function () {

updateRecipes("dessert");

});

});

這里我們調用了forge.topbbar.setTitle,該API會改變頂部的標題,然后用forge.tabbar.addButton來添加標簽欄的按鈕,以及該按鈕的監聽器。

我們修改src/index.html這個文件:

Hello world!

src/js/main.js文件里面引用了一些圖片,這些圖片你可以從代碼示例中獲取,并放在src/img目錄里。

這次我們在IOS里面運行測試:

a8f26af47da4eaace5aaee7ea54b0c43.png

第三步:創建列表視圖

OK,現在我們需要創建菜譜列表,并讓它們點擊后可跳轉。

我們將使用輕量級的zepto.js庫,以幫助我們處理DOM操作。我們已經發表了一篇關于如何使用zepto.js和backbone.js快速創建HTML5的移動應用程序的博客。因此,我們就不在這對做介紹了。接下來在菜譜列表中使用HTML/CSS/JavaScript。

首先,讓我們將菜譜數據導入到zepto.js庫。你可以下載zepto.js和data.js從Github上的例子,并把它們放在你的src/js目錄里。

然后我們更新src/js/的main.js中的updateRecipe功能 - 這是當標簽欄按鈕被按下時調用的:

var updateRecipes = function (search) {

scrollTop();

$('.content').html('

$.each(data[search], function (i, recipe) {

var el = $('

'+recipe.thumb+''+recipe.title+'');

el.on('click', function () {

scrollTop();

$('.content').html('

'+recipe.title+'

'+recipe.img+'

View full recipe

');

$.each(recipe.ingredients, function (i, ingredient) {

$('.ingredients').append('

'+ingredient+'');

});

forge.tabbar.setInactive();

});

$('.list').append(el);

});

}

現在完成應用程序,我們只需要在src/index.html添加一些簡單的樣式并導入JavaScript文件:

body, html, li, ul {

padding: 0;

margin: 0;

}

body {

font-size: 1.2em;

}

.recipe {

text-align: center;

}

.recipe img {

max-width: 80%;

}

.recipe li {

display: block;

font-size: 0.9em;

padding: 2px;

}

.list {

margin: 0;

padding: 0;

}

.list li {

display: block;

border-bottom: 1px solid #aaa;

padding: 0;

margin: 0;

width: 100%;

overflow: hidden;

white-space: nowrap;

text-overflow: ellipsis;

}

.list li img {

height: 50px;

width: 50px;

padding: 2px 7px 2px 2px;

vertical-align: middle

}

完成

現在,你運行應用程序就會看起來跟本篇文章的頂部截圖一樣了。除此之外,你也可以嘗試調用以下API來探索頂部欄和標簽欄的不同造型:

因此,你也可以使用Trigger.io中的原生UI組件創建出豐富的混合應用程序!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529777.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529777.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529777.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c語言不會可以學好java嗎_有人說學了C語言,兩天就能學會Java,兩個星期就可以找工作?...

作為一個過來人來說,編程如果真的那么簡單就不會導致現在各大公司還喊著招不到人的情況了,雖然編程領域里面有觸類旁通的說法,但這個說法只是針對于對于一種編程已經掌握到一定程度了,不是簡單的學過或者做過就可以輕松的轉向別的…

html 正則表達式驗證金額,js金額校驗,js正則表達式,包含正負,小數點后兩位...

js金額校驗,js正則表達式,包含正負,小數點后兩位,js代碼如下:function isMoney(s) {//金額 只允許正數//var exp /(^[1-9]([0-9])?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;//金額 允許正()負數//…

蘋果app商品定價_【知乎問答】蘋果 App Store 新推出的 1 元或 3 元定價對開發者有什么影響?...

徐小懶:我的游戲今年 10 月 1 日上線,定價 6 元。上線后,排名起起落落,總的來說一直在爬升。截止到 19 號之前,爬到總榜前 20(未刷榜),最多一天 300 個下載,累計下載 3500。19 號改成 1 元后,當…

sublime默認html,Sublime Text默認HTML評論

似乎對安裝包裝或拆卸包裝有點隱蔽,因此需要進行一些調查才能解決問題。對于后臺,用于注釋(單行或塊)的字符或字符的設置信息由tmPreferences類型的文件提供(不是tmLanguage,如在{您在問題的評論中鏈接到的教程)。文件的名稱及其包含的包無關…

筆記本連接顯示器后沒有聲音_電腦用HDMI外界顯示器后,沒有聲音

本人使用Y450, 總感覺屏幕小, 現有PHILIPS 202E, 但是笨笨VGA壞了(真是悲催啊, 但是我強悍小Y跟我也有4~5個年頭了, 可以理解) 所以買了HDMI賺VGA, 接上顯示器后顯示非常棒, 很爽, 絕對高清. 但是唯一的缺點就是接上HDMI后笨笨就沒聲音, 而且我的飛利浦又沒有音頻輸出. 悲催了…

html文本域 高度自適應,textarea高度自適應,textarea隨著內容高度變化

有時候我們需要textarea的高度隨著內容的多少去自適應的變化,今天我使用了JS原生和JQ寫了一個textarea的高度隨著他的內容高度變化的代碼,希望能幫上忙。廢話不多說直接貼代碼:textarea{ width:500px; margin:20px auto; padding:0; font-siz…

layer 線上_LAYER

SHIPPING TO : ??(GHANA)SHIPPING TO : ??(GABON)SHIPPING TO : ????(GUYANA)SHIPPING TO : ???(GAMBIA)SHIPPING TO : ????(GUATEMALA)SHIPPING TO : ????(GRENADA)SHIPPING TO : ????(GEORGIA)SHIPPING TO : ???(GREECE)SHIPPING TO : ??(GUINEA…

ajax為什么返回html標簽,AJAX與特定值后返回的HTML標簽

我想寫使用jQuery的post.I傳遞的參數,以ajax.php并獲得josn數據添加用戶注釋代碼,如下:AJAX與特定值后返回的HTML標簽var formObjectData $(# form_id).serialize() &flagadd_comment; // all$.post(http://192.168.3.3/myblog/ajax.p…

wps合并所有sheet頁_WPS里面如何批量打印(WPS2019)

WPS里面如何批量打印(WPS2019)分四步:1. 創建WPS表格獲獎名單2. 創建WPS文字的獲獎模板3. 將WPS表格名單內容調入到WPS文字獎狀模板中4. 批量打印(或保存)(注:我在這里用了別人的office版本的表…

丘成桐科學獎計算機類,2017東潤丘成桐科學獎計算機參賽指引.PDF

2017東潤丘成桐科學獎計算機參賽指引2017 東潤丘成桐科學獎 (計算機)參賽指南一、 參賽方式? 每支參賽隊伍由1 至3 位華人中學生組成,由一位指導老師帶領,提交研究報告。? 學生身份:以在參賽報名之時是否為在校中學生為準。? 導師身份&…

keepalived mysql雙主架構圖_基于MySQL雙主的高可用解決方案理論及實踐

MySQL在互聯網應用中已經遍地開花,但是在銀行系統中,還在生根發芽的階段。本文記錄的是根據某生產系統實際需求,對數據庫高可用方案從需求、各高可用技術特點對比、實施、測試等過程進行整理,完善Mysql高可用方案,同時…

俄亥俄州立大學計算機科學轉學成功,俄亥俄州立大學轉學成功率83.38%!!

俄亥俄州立大學The Ohio State University-Columbus,即OSU成立于1870年,全美高校排名第54位(公立學校排名第18位),是美國較好的公立學校之一,亦是“公立常春藤”的成員。OSU是美國重要的學術聯盟“美國大學協會”的成員之一&#…

小愛同學100個奇葩回復_小米小愛音箱Pro開箱評測,看到的不僅是全面升級更是小米loT的高速發展...

Hello,大家好,這里是科技能量站,今天有何大家見面了,本期小編給大家帶來的是小米最新推出的小愛同學“小米小愛音箱Pro”,小米在前兩年推出了自家的小米AI音箱,那一刻起,智能語音人工助手在小米…

你了解的繼承方式html,法定繼承、遺囑繼承、遺贈,這三種房產過戶方式你了解多少?...

在房產過戶的中,與繼承相關的方式有三種:法定繼承、遺囑繼承和遺贈。這三種過戶方式其實是有較大不同的,下面我們就來具體分析下,希望能對需要的朋友有幫助。過戶在房產過戶中,與繼承相關的有三種,分別是法…

計算機在生物學研究領域的認識,阮曉鋼——北京工業大學——主要研究領域涉及:控制科學與工程,人工智能與認知科學,機器人學與機器人技術,計算機應用技術,生物醫學工程與生物信息學。...

2007 年度:[1] On-line adaptive control for inverted pendulum balancing based on feedback-error-learning. Neurocomputing, 70 (4-6): 770-776 JAN 2007.[2] A tabu based neural network learning algorithm. Neurocomputing, 70 (4-6): 875-882 JAN 2007.20…

wedo2.0編程模塊介紹_福特福克斯TCM重新編程操作

適用范圍支持車型/年款:新福克斯 2011 – 2018 1.6L/2.0L DPS6變速箱 車型嘉年華 2013 1.5L DPS6變速箱 車型翼博 2013 – 2016 1.5L DPS6變速箱 車型功能介紹升級ECU版本或者對空白ECU寫入數據, PAD Ⅲ請使用有線連接進行編程, 測試時保證車輛電瓶電壓充足條件要求…

全國計算機二級公共知識點,全國計算機二級公共基礎知識知識點

全國計算機二級公共基礎知識知識點公共基礎知識第一章 數據結構與算法1.1 算法1.1.1 算法的基本概念1、算法的基本特征可行性、確定性、有窮性、擁有足夠的情報所謂算法,是一組嚴謹地定義運算順序的規則,并且每一個規則都是有效的,且是明確的…

中計算散度的函數_梯度、散度、旋度

一、麥克斯韋基于四元數觀點導出散度與旋度已知的最早的關于散度和旋度的描述都來自麥克斯韋1873年的《A Treatise on Electricity and Magnetism》(電磁通論)一書。因此,為了探明散度和旋度的物理意義,有必要回到那本1873年的專著…

必須重啟計算機才能關閉用戶賬戶控制,Win10系統怎么徹底關閉用戶帳戶控制?...

大多是win10系統用戶都知道,微軟所推出的用戶帳戶控制能夠限制一些病毒程序啟動,從而較好的保護我們的電腦安全,以達到降低win10系統中毒的風險。可是每當我們運行一個程序的時候系統總會出現提示,感覺很煩,那么怎么永…

三菱plcfx5u指令手冊_從西門子200的PLC程序來看三菱FX5U的PLC程序

小型PLC系統中西門子200系列和三菱的FX系列是應用的比較多的,作為工控行業的工程師是很有必要明白他們之間的一些不同點的,特別是從程序上來說,因此來寫一篇文章,簡單的聊聊他們在編程上的一下不同!西門子PLC和三菱PLC…