ios和android內嵌h5頁面聯調小結

wiven發表於2019-04-01

ios Android H5 方法相容

  1. 在h5和Android中判斷是否為空是 == === 都可以進行判斷,但是ios無法正確進行判斷,空字串判斷會返回false
/**
* 判斷是否為空
* @param v:需要判斷的資料
* @returns {boolean}
*/
export function isEmpty(v) {
    switch (typeof v) {
        case 'undefined':
            return true;
        case 'string':
            if (v.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length === 0 || v.length === 0 || v == 'null') return true;
            break;
        case 'boolean':
            if (!v) return true;
            break;
        case 'number':
            if (0 === v || isNaN(v)) return true;
            break;
        case 'object':
            if (null === v || v.length === 0) return true;
            for (var i in v) {
                return false;
            }
            return true;
    }
    return false;
}
字串需要先替換空格換行符等為'',再進行length判斷,
或者是從介面獲取資料,替換預設值時,可以由後端進行處理
複製程式碼
  1. 呼叫SDK傳參時,如果拿到請求資料進行回傳,ios和android引數回傳給對方之後,資料可能會被進行處理,造成SDK方法ios或android無法調起,或調起效果去要求不符的情況,確認引數回傳正確後,由對方進行資料處理

  2. h5中location.search可以獲取到url 問號(?)之後的引數,但是因為vue的#問題,或造成無法獲取到的情況

呼叫SDK方法

  1. 呼叫SDK,方法無效或者有呼叫反應卻沒有出現相應結果,android可能需要安裝新包,ios可能是傳參格式有問題,ios需要聯絡相應開發人員處理
  2. 在android除錯,alert可以彈出資訊,ios中alert無效,可以使用toast彈出進行除錯

相關文章