一個簡單WebApp的全程


開始前,我先給出上一篇選項卡的demo鏈接http://xqhuadou.com/demo1/index.html。相信看着應該很帶感,不過這個是之前經過修改的。

制作過程我就不多說了,可以直接看源碼。

 

  好了,現在開始我們的WebApp的流程,既然是App,來個icon是必要的,就像這樣

  

  現在我們可以來玩大家來找茬了,是不是和本地App很像呢,打開話兜的內容是上圖右邊的效果。

  

  好的,無論我們用的什么樣的作圖軟件,自己會用的就ok,制作一個別致的icon不是問題,但是需要注意的地方的是,icon的大小要多種,因為安卓機屏幕的碎片化,我們要考慮不同的屏幕下的icon大小,

57*57、120*120、196*196三個不同大小的png圖片。有了icon我們應該怎么用呢,既然我們做的WebApp,他其實就是一個Web頁面,之前桌面上的icon其實只是一個打開頁面的快捷方式。

  現在我們需要制作前端的web頁面了,應用的首頁就如上圖,相信用html制作這樣的頁面布局是不難的,但是我們需要寫很多html的meta標簽,就像這樣

  

<html> <head> <meta name="renderer" content="webkit"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name='apple-touch-fullscreen' content='yes'> <meta name="full-screen" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="format-detection" content="telephone=no"> <meta name="format-detection" content="address=no"> <!--桌面快捷圖標--> <link rel="apple-touch-icon-precomposed" sizes="57x57" href="images/ico-57x57.png"> <link rel="apple-touch-icon-precomposed" sizes="120x120" href="images/ico-120x120.png"> <link rel="apple-touch-icon-precomposed" sizes="196x196" href="images/ico-196x196.png"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- 屏幕適配 --> <meta name="viewport" content="width=device-width,initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">

  上面這多的標簽,其實最重要的酒是屏幕適配的meta標簽內容,是規定文檔寬度等於設備屏幕的寬度,而且不允許放大,所以接下去我們寫的所有div元素的寬度都不能用固定寬度,因為,如果要保證在屏幕大小不同的屏幕上都要顯示滿屏的元素,很容易想到用100%百分比的寬度設定。記住html5有很多新的特性,來支持我們來制作這樣的應用。

 

  一般的css樣式我就不多說了,講幾個需要注意的地方,一般情況下,點擊手機網頁上的<a></a>是有高亮顯示的,而且自帶的高亮對於不同的手機是不一樣的,所以我們應該去除這樣的顯示,給A標簽加上這樣的css。

a{text-decoration:none;color:#333333;-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(61,194,168,1);}

  因為是個web,我們不能保證每個打開的設備都是手機,可能打開這個頁面的是pc,所以最好我們,做成一點響應式。就像這樣

  

雖然pc上,看着不怎么爽,但是至少我們有所作為,作為用戶也應該能感受到不太一樣。當然,對於攻城獅來說這僅僅是代碼能夠解決的,來個媒體查詢,同樣還是html5的功勞,就像這樣

.page{width:60%; margin:0 auto;}
.log_reg{width:60%; margin-left:-30%;}
@media screen and (max-width:823px){
.page{ width:80%;}
.log_reg{width:80%; margin-left:-40%;}
}

@media screen and (max-width:598px){
    .page{ width:90%;}
    .log_reg{width:90%;margin-left:-45%;}
}

@media screen and (max-width:480px){
    .page{ width:100%;}
    .log_reg{width:90%; margin-left:-45%;}
}

有了以上這么點的基礎,寫出上面的界面應該就不難了,接下來才是任務重點,功能開發。涉及后台的我就不多說了,我只說明這個簡單的應用服務端用的java。這個應用出去注冊和登錄另外只有兩個功能,一個是發表心情,第二就是圍觀,也就是評論。我們先來說登錄。上段js代碼

//登錄注冊組件操作
    
    var $ze = $(".ze");//遮罩組件
    
    var $log_reg_warp = $(".log_reg_warp");//登錄和注冊外包裹組件
    var $oli = $(".topbar li");    
    var $log_reg = $(".log_reg");//整個登錄組件
    var $check = $("#check");//提示信息組件
    
    $to_log.click(function(){
        $log_reg.animate({top:65});
        $ze.show();
        //自動填寫用戶名和密碼
        if(localStorage.account){
            $("#account").val(localStorage.account);
            $("#password").val(localStorage.password);
        }
        });
    $("#close").click(function(){
        $log_reg.animate({top:-230});
        $ze.hide();
        });    
    
    for(var i=0; i<$oli.length;i++){
        $oli[i].index = [i];
        }
    
    //登錄注冊界面切換
    $oli.click(function(){
        $(this).addClass("activ").siblings().removeClass("activ");
        $log_reg_warp.animate({left:- this.index*100+"%"}, "slow");
        $check.text(" ");    
        });
    
    //登錄操作
    $("#log").click(function(){
        var account =  $.trim($("#account").val());//獲取賬號   去掉空格
        var password = $.trim($("#password").val());//獲取密碼 去掉空格
        $.ajax({
                url:'userAction_log_ajax',
                data:{account:account,password:password},
                type:'post',
                success:function(data){
                    switch(data){
                    case '0'://返回0 登錄成功
                        $to_log.find("span").text(account);//修改登錄狀態
                        $check.text(" ");//去除提示信息
                        $log_reg.animate({top:-230});//登錄組件隱藏
                        $ze.hide();//遮罩層隱藏
                        sessionStorage.isLog = true;
                        //本地存儲用戶名和密碼
                        localStorage.account = account;
                        localStorage.password = password;
                    break;
                    
                    //返回1用戶名或密碼不正確
                    case '1':
                        $check.text("用戶名或密碼不正確");
                        flash('#check',5,8,50);
                        break;
                        
                    default:
                        $check.text("程序員不在,系統不開心了");
                        
                        }
                    },
                error:function(){
                    $check.text("程序員不在,系統不開心了");
                    
                }
            });
        
        });
    
    
    //注冊操作
    $("#reg").click(function(){
        var account =  $.trim($("#account").val());//獲取賬號   去掉空格
        var password = $.trim($("#password").val());//獲取密碼 去掉空格
        //注冊請求
        $.ajax({
            url:'userAction_reg_ajax',
            data:{account:account,password:password},
            type:'post',
            success:function(data){
                //用戶名被占用返回2//用戶名可用返回0//用戶名密碼格式不正確返回1
                switch(data){
                //返回0則注冊成功執行下一步操作
                case '0':
                    $check.text("注冊成功!可以登錄了!");   
                break;
                
                //返回1用戶名或密碼不正確
                case '1':
                    $check.text("用戶名或密碼格式不對");
                    flash('#check',5,8,50);
                    break;
                    
                //返回2用戶名被占用    
                case '2':
                    $check.text("用戶名已經被人搶了!嗚嗚!換個");
                    flash('#check',5,8,50);
                    break;
                    
                default:
                    $check.text("程序員不在,系統不開心了");
                }
                
            },
            //錯誤則提示系統忙
            error:function(){
                $check.text("程序員不在,系統不開心了");
                
            }
            
        });
        
    });

說了這么多,可能還是不知所雲,你們還是先體驗一下吧!之后再詳細說明細節。http://www.xqhuadou.com。時間問題沒有做兼容,webkit內核的瀏覽器是沒有問題的,最好是手機,體驗是最好的。

在上一張宣傳圖片,感覺是不是瞬間高大上起來了,

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM