AppWorker教程-do_Webview和H5

do_Webview和H5的介紹

AppWorker平臺并不是基于html5的跨平臺開發(fā)工具矾利。我們開發(fā)一個app都是使用原生的組件,但是在某些場景下html5也是非常好的選擇,比如復(fù)雜的圖文混排(類似新聞),比如報表chart之類用html很方便。如果你對html相關(guān)技術(shù)熟悉的話槐壳,你也可以在更多場景使用。

do_Webview的組件的API文檔參考這里
我們從二個方面來介紹:

加載網(wǎng)頁

這是基本功能喜每,加載網(wǎng)頁很簡單就是通過設(shè)置url屬性為本地html(data://,source://協(xié)議) 和web網(wǎng)頁(http://,https://協(xié)議) 务唐。
do_Webview加載網(wǎng)頁你可以理解為就像一個內(nèi)嵌的瀏覽器打開網(wǎng)頁一樣,常用的js灼卢,css等所有和web相關(guān)的技術(shù)都支持绍哎,通常手機(jī)都帶了缺省的瀏覽器,這個瀏覽器的核心和do_Webview是一致的鞋真。
當(dāng)然還是有可能有細(xì)微差別崇堰,瀏覽器相對來說成熟更多,容錯和兼容性更強(qiáng)涩咖。

var webview = ui("do_webview_id1");
webview.url = "source://view/test.htm";
webview.url = "http://www.baidu.com"

html相關(guān)的技術(shù)太多海诲,我們這里不再做介紹,不屬于appworker平臺的范疇檩互。
這里提供一個簡單的示例特幔,加載jquerymobile的示例

調(diào)用appworker其它組件

這個是重點闸昨,do_Webview組件是AppWorker提供了眾多組件中一個蚯斯,這個組件是一個ui文件里的一部分薄风,可以實現(xiàn)它和其它組件的交互。在html里面的js代碼能調(diào)用其它MM拍嵌,SM和UI組件遭赂。
和在ui.js里調(diào)用AppWorker的API類似,唯一區(qū)別是所有與AppWorker相關(guān)的操作都必須放在onDeviceOneLoaded回調(diào)函數(shù)里横辆,這個回調(diào)函數(shù)有點類似JQuery的ready方法撇他。
SM和MM的使用方法完全一樣,但是對UI的操作建議是通過觸發(fā)page的消息來處理狈蚤。比如test.html加載在test.ui里的webview組件里困肩,如果test.html需要控制test.ui里的其它ui,最好的方式是在test.html里的js代碼發(fā)送一個page作用域的消息給test.ui.js脆侮,在test.ui.js里去操作其它ui組件锌畸。
可以參考以下示例,這個示例完整展示了調(diào)用SM他嚷,MM蹋绽,UI的方法:

//login.html
<Script>
    var login = document.getElementById("login");
    var back = document.getElementById("back");

    //所有和AppWorker相關(guān)的調(diào)用都需要放在onAppWorkerLoaded回調(diào)函數(shù)里芭毙,類似JQuery的ready方法
    window.onDeviceOneLoaded = function() {
        // sm對象的獲取和在ui.js里獲取沒有差別
        var nf = sm("do_Notification");
        var app = sm("do_App");
        var page = sm("do_Page");

        login.onclick = function() {
            var name = document.getElementById("loginName").value;
            var pwd = document.getElementById("loginPwd").value;
            if (!name || !pwd) {
                //調(diào)用原生的alert方法
                nf.alert("用戶名或密碼不能為空!")
            } else
                loginNewPage(http, page);
        }

        back.onclick = function() {
            //點擊html的按鈕返回到前一個page
            app.closePage();
        }

        // mm對象的創(chuàng)建和在ui.js里沒有區(qū)別
        var http = mm("do_Http");
        http.method = "POST";
        http.on("result", function(data) {
            //對ui的操作最好是通過消息發(fā)送到ui.js里去做筋蓖,而不是直接在html里操作
            page.fire("progressbar", "hide");
            if (data.status == 200) {
                app.openPage({
                    source : "source://view/main.ui",
                    statusBarState : "transparent"
                });
            }
        });

    }
    function loginNewPage(http, page) {
        http.url = "http://www.baidu.com";
        http.request();
        //對ui的操作最好是通過消息發(fā)送到ui.js里去做,而不是直接在html里操作
        page.fire("progressbar", "show");
    }
</Script>

上面的示例可以看到通過加裝本地html可以直接訪問AppWorker的任何API退敦,包括html不支持的本地讀寫等操作粘咖。
完整的示例參考這里
另外加載web頁面,也就是http:// 的頁面其實也可以訪問AppWorker的任何API侈百,這會帶來一個安全問題瓮下,所以do_Webview組件增加一個屬性來控制,如果這個屬性為false钝域,則無法調(diào)用AppWorker的其它組件了

webview.allowAppWorker  = false;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末讽坏,一起剝皮案震驚了整個濱河市例证,隨后出現(xiàn)的幾起案子路呜,更是在濱河造成了極大的恐慌织咧,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笙蒙,死亡現(xiàn)場離奇詭異抵屿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)捅位,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門搂抒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人燕耿,你說我怎么就攤上這事〗郑” “怎么了誉帅?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長右莱。 經(jīng)常有香客問我蚜锨,道長慢蜓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任晨抡,我火速辦了婚禮,結(jié)果婚禮上耘柱,老公的妹妹穿的比我還像新娘。我一直安慰自己调煎,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布士袄。 她就那樣靜靜地躺著,像睡著了一般寓辱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秫筏,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天需了,我揣著相機(jī)與錄音跳昼,去河邊找鬼肋乍。 笑死,一個胖子當(dāng)著我的面吹牛墓造,可吹牛的內(nèi)容都是我干的锚烦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼涮俄,長吁一口氣:“原來是場噩夢啊……” “哼尸闸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吮廉,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宦芦,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體调卑,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年注益,在試婚紗的時候發(fā)現(xiàn)自己被綠了气破。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聊浅。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡现使,死狀恐怖旷痕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情欺抗,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布绞呈,位于F島的核電站,受9級特大地震影響佃声,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜圾亏,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一封拧、第九天 我趴在偏房一處隱蔽的房頂上張望夭问。 院中可真熱鬧泽西,春花似錦缰趋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽直撤。三九已至,卻和暖如春谋竖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蓖乘。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留零聚,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓隶症,卻偏偏與公主長得像岗宣,于是被迫代替她去往敵國和親蚂会。 傳聞我的和親對象是個殘疾皇子耗式,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,969評論 3 119
  • 1余指、小恩明天單元測試,輾轉(zhuǎn)難眠浪规,只是為了考得好可以免除一次我要求的全能卷或听。自律的孩子笋婿,懶癌的我誉裆,實在是個意外缸濒。 2...
    yoyolikeyou丫頭閱讀 113評論 0 1
  • 1 發(fā)現(xiàn)自己:早起上班,有一種愉悅捞慌!喜歡這樣的清晨和這樣的陰天和有涼風(fēng)的天氣。走路都有一種輕快啸澡!心理也很輕松袖订! 2...
    福娃婧閱讀 218評論 0 0