1. 程式人生 > >APICloud框架——總結一下最近開發APP遇到的一些問題 (二)

APICloud框架——總結一下最近開發APP遇到的一些問題 (二)

高度自適應

flex佈局 允許子元素伸縮

手機號正則

function checkPhone(data){ 
    if(!(/^1[34578]\d{9}$/.test(data))){ 
        alert("手機號碼有誤,請重填");  
        return false; 
    } 
}
function checkTel(data){
    if(!/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(data)){
        alert('固定電話有誤,請重填');
        return false;
    }
}

db模組執行sql語句

一句一句執行,不能以;號隔開,否則後面的會不執行

vscode漢化

快捷鍵F1, 輸入Configure Language 回車, 把en改成zh-CN, 儲存, 重啟vscode.

格式化時間

new Date().toISOString().match(/(\d{4}-\d{2}-\d{2})/)[1];

建立資料庫操作

  • 建立資料庫
DROP TABLE IF EXISTS addressList; CREATE TABLE addressList(user_id int)
// 如果有addressList這個表就不執行新建命令
  • 設定唯一索引
CREATE UNIQUE INDEX IF NOT EXISTS user_id_idx ON addressList (user_id)
// 在addresslist表中的user_id這個列設定唯一索引user_id_idx

IOS系統下輸入框字型數量

使用onkeup事件有BUG, 如果點選鍵盤上面的文字輸入到輸入框,onkeyup不會觸發,統計不了字型數量

使用oninput這個事件可以解決這個問題

android和ios行高不相容

使用js判斷 android比ios大9px

去掉input[type=number]的箭頭

-webkit-appearance:none

git

在使用git的時候,每次執行

#git add *

都會提示這樣一個警告訊息:

warning: LF will be replaced by CRLF in XXXXXXXXXXXXXX.

雖然說沒有什麼影響吧。

不過就是覺得太礙眼了,

按照這樣設定就沒有問題了:

git config core.autocrlf false
// 禁止自動轉換

這樣設定git的配置後在執行add操作就沒有問題了。

刪除指定字串

把指定字串替換成空

str = str.replace('a','')

查詢指定字串是否含有某個子字串

str.indexOf('aa') == -1
不含有指定字串
str.indexOf('aa') >=0
含有

slice和splice

slice(start,end);剪下陣列
splice(start, howmany, item1, ..., itemX); 方法用於插入、刪除或替換陣列的元素。

// start 開始插入/刪除的位置
// howmany 插入/刪除幾項,必須是數字
// item1, ..., itemX 插入的內容, 不傳的時候為刪除

listContact模組在小米5s下的bug

每個頁面第一次開啟listContact列表會出現點選返回的index不正確, 右邊字母導航也會出現重複

解決方法, 在開啟正式有資料的列表之前開啟一個空的列表,然後立馬關閉

listContact.open({
    x: -1000,
    y: -1000,
    w: 5,
    h: 5,
    data: [],
    fixedOn: api.frameName
},function(ret,err){
})
listContact.close();

listContact.open({
    // 有資料的列表
})

安卓下第二個bug

  • 設定選中的項, 安卓不起作用

解決辦法: 在設定資料來源的時候, 處理以選擇資料

清除角標

api.setAppIconBadge({
    badge: 1
});
// 為0時表示清除

css三角形帶邊框

原理: 寫兩個三角形, 一個覆蓋另一個, 錯開一個畫素

 p:after {
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    border-top: .15rem solid transparent;
    border-right: .22rem solid #fff;
    border-bottom: .15rem solid transparent;
    position: absolute;
    top: .25rem;
    left: -.20rem;
}
 p:before {
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    border-top: .15rem solid transparent;
    border-right: .22rem solid #E3E3E3;
    border-bottom: .15rem solid transparent;
    position: absolute;
    top: .25rem;
    left: -.22rem;
}

Deferred long-running timer task的問題

Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343. at frame1.html : 0

延時函式使用不當

ios下建立時間物件

// 處理時間顯示
    function initTime(time) {
        var timeRep = time;
        time=time.replace(/-/g,':').replace(' ',':');
        time=time.split(':');
        var nowTime = new Date();
        var pageTime = new Date(time[0],(time[1]-1),time[2],time[3],time[4],time[5]);
        if ((pageTime.getDate() != nowTime.getDate()) || (pageTime.getFullYear() != nowTime.getFullYear()) || ((pageTime.getMonth()+1) != (nowTime.getMonth()+1))) {
            // 不是今天
            return timeRep;
        } else {
            // 今天
            if (nowTime.getHours() != pageTime.getHours()) {
                return nowTime.getHours() - pageTime.getHours()+ '小時之前'
            } else {
                return nowTime.getMinutes() - pageTime.getMinutes() + '分鐘之前'
            }
        }
    }

長按事件

var timeOutEvent=0;//定時器   
        //開始按   
        function gtouchstart(ele){
            var e = window.event
            var x = e.touches[0].pageX,y=e.touches[0].pageY
            timeOutEvent = setTimeout("longPress("+x+","+y+")",500);//這裡設定定時器,定義長按500毫秒觸發長按事件,時間可以自己改,個人感覺500毫秒非常合適   
            return false;   
        };   
        //手釋放,如果在500毫秒內就釋放,則取消長按事件,此時可以執行onclick應該執行的事件   
        function gtouchend(){   
            clearTimeout(timeOutEvent);//清除定時器   
            if(timeOutEvent!=0){   
                //這裡寫要執行的內容(尤如onclick事件)   
            }   
            return false;   
        };   
        //如果手指有移動,則取消所有事件,此時說明使用者只是要移動而不是長按   
        function gtouchmove(){   
            clearTimeout(timeOutEvent);//清除定時器   
            timeOutEvent = 0;   

        };   
        //真正長按後應該執行的內容   
        function longPress(x,y){
            timeOutEvent = 0; 
            $api.css($api.dom('.shadow'), 'display:inline-block;top:' + y + 'px;left:' + x + 'px;');
            //執行長按要執行的內容,如彈出選單   
            console.log("長按事件觸發發");   
        }   

兩次往資料庫插入同一條資料

  1. 首先查詢資料所在的行(需要有一個唯一索引)
  2. 如果有資料就更新資料
    UPDATE 表名 SET 列名 = 資料,列2 = 資料2 WHERE 唯一索引 = 索引
  1. 沒有該資料就插入
    INSERT OR REPLACE INTO 表名(列名1, 列名2, 列名3, 列名14)  VALUES (值1, 值2 ...)

相關推薦

APICloud框架——總結一下最近開發APP遇到的一些問題 ()

高度自適應 flex佈局 允許子元素伸縮 手機號正則 function checkPhone(data){ if(!(/^1[34578]\d{9}$/.test(data))){ alert("手機號碼有誤,請重填")

APICloud框架——總結一下最近開發APP遇到的一些問題 (三)

ajax報錯 Uncaught DOMException: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 需要在伺服器環境下執行, 不能直接雙擊開啟 # 七牛雲 新建圖片樣式可

(轉)總結一下最近關於domain object以及相關的討論(來自JavaEye,作者robin)

在最近的圍繞domain object的討論中浮現出來了三種模型,(還有一些其他的旁枝,不一一分析了),經過一番討論,各種問題逐漸清晰起來,在這裡我試圖做一個總結,便於大家瞭解和掌握。 第一種模型:只有getter/setter方法的純資料類,所有的業務邏輯完全由business object來完成(又稱T

勞動節前得空半天-總結一下最近使用的LINUX命令

ava less 查找內容 一行 文件中 顯示行號 搜索 高亮 linux命令 一、搜索文件   1、locate xxx.log 全盤搜索xxx.log文件   2、which java 查找命令   3、ll xxx.log 在目

半年多實習總結最近旅遊期間的一些心得

本篇部落格是寫給自己的, 算是一篇日記吧. 我從今年1-3月份在網易實習, 6-11月份在阿里巴巴實習, 現在已經在阿里轉正. 上個月, 11月11號之後我提了離職, 至此2018年實習結束, 現在寫這篇部落格的我正坐在家裡的電腦前, 穿個小褲頭享受這最後的假期生活(順便寫寫論文),

最近開發中的一些坑#1

牢騷 最近回學校, 聽說阿里好多實習生都被拒了, 不過大概都被撿漏了, UC這方面還沒動靜, 不知道是打算把我當臨時工使還是怎麼, 有點煩躁, 還是得加強自己的能力才行. 最近半年一直在做音樂播放器專案, 開發期間遇到了許多奇怪的問題, 有些我單獨寫了文章,

在springboot框架下使用mybatis開發遇到的一些問題以及解決方案(postgresql資料庫)

[email protected]和@mapperscan。二者的作用是一樣的,如果不想在每個mapper上加@mapper,就直接使用@mapperscan。 2.使用mybatis自動生成mapper時,如果生成多次,會直接在mapper.xml檔案裡面追加重複程式碼。 3.m

WEB開發者之混合開發APP(十), 頁面間的引數傳遞方式

混合開發app中,頁面之間的引數傳遞方式,主要使用以下兩種。 1. 新建頁面的引數傳遞 傳遞引數: //獲取商品分類id var id = '121212'; //直接開啟產品分類頁

最近使用SSH開發問題總結

可用 技術 路徑 實體類 () 技術分享 構造 有一個 裏的 1、dao實現類裏的sql語句   拼接sql語句時要註意表名應該與定義的實體類(此實體類對應數據庫中的表)的類名(類名是該類的全路徑名稱,前面帶一串包名的那個類名)對應,不要用數據庫裏的表的表名。   例如

使用react-native框架開發APP總結

先交代一下背景,專案已經開發出web端,小程式端。在這之後,需要開發APP,對於React,es6已經運用的很熟悉了,所以採用了react 系列的React-native技術,因為是第一次使用react-native,還是有很多欠考慮的地方,歡迎交流。 一、當架子已經搭起來,需要考慮如下問題:

uni-app,wex5,APPcan,ApiCloud幾款國內webapp開發框架的選型對比

開發 http details 包括 應用 不錯 .net 大堆 前端工程師 框架列表。 https://www.cnblogs.com/xiaxiaxia/articles/5705557.html 前言 近期,要開一個新的項目,APP類型。最重要的需求就是能夠隨時

最近做的事情,得總結一下

技術 客戶端 容器 服務容器 協議 功能 級別 web 現在   最近被人惡意刷接口了,發現的時候一萬多條短信已經被刷完,當時天真的以為第三方會幫忙搞定安全方面的事情,為了限制這個事情,加了一個很簡單的邏輯:   加入圖形驗證碼,當圖形驗證碼輸入正確時,設置當前可調用

Java企業微信開發_07_總結一下企業微信的配置

alt 微信 idt cnblogs 信息 java 域名 ram com 一.企業微信後臺 1.回調url 2.可信域名 3.菜單跳轉按鈕中的鏈接 4.PC端網頁授權 二、代碼內 1.企業微信的配置信息:WeiXinParamesUtil

《分布式服務框架原理與實踐》- 總結一下

配額 服務調用 全量 影響 ng- 依賴 線下 分布式服務框架 微服務架構   我們聽過無數的道理,卻仍舊過不好這一生。額,我說的是技術!   《分布式服務框架原理與實踐》這本書,一直在講一些大道理,和具體的業務和我本身的工作已經沒多大關系了。但是,不管怎麽樣,還得總結下吧

H5牛牛源碼開發APP技術總結

pat 頁面 page 文件夾 blog pack hone 微信瀏覽器 ext Q1446595067官網:h5.haozibbs.com或http:\\www.aqbaa.cn在H5頁面打開APP的方法一般有兩種,在IOS 9以前,一般使用的技術是URL Scheme。

Learun.framework快速開發框架-功能特點與手機app

快速開發框架 快速開發平臺 公司的形態,團隊的狀態,直接影響著我們對開發框架的選擇。我們這樣的小成本開發團隊,更主要的是追求快而省。框架要開源,不必付出額外的成本開發要快速,能夠更迅速的根據客戶需求:代碼要簡單,任何經過簡單培訓的程序員都幾乎能夠勝任。 領導一直再給我們灌入快速開發的

前端開發框架總結之Angular實用技巧(六)

                                    前端開發框架總結之Angular實用技巧(六)

前端開發框架總結之Angular實用技巧(五)

                          前端開發框架總結之Angular實用技巧(五) 上文講了Angular中網路請求相關的知識,掌握了這些,我們就可以

前端開發框架總結之Angular實用技巧(四)

                       前端開發框架總結之Angular實用技巧(四) 上文講了Angular中路由的相關的知識,掌握了這些,我們就可以構建比較複雜的頁面

前端開發框架總結之Angular實用技巧(三)

                             前端開發框架總結之Angular實用技巧(三) 上文講了Angular中頁面重新整理和資