背景:
有個比較早些使用5+開發的項目, 最近兩天反饋了一些問題, 解決過程在此記錄;
坑1:? plus.gallery.pick? 選擇圖片沒有進入回調
HTML5+ API Reference
在 聯想小新 平板電腦上選擇相冊圖片進行上傳時, 打開相冊瞬間 應用會自動重啟, 相冊倒是有打開, 不過應用重啟了, 導致業務也完成不了, debug 沒有任何錯誤, gallery.pick 成功和失敗的回調都沒有進入;
原因分析: 應用采用的強制橫屏模式, 在 manifest.json 中?是像如下配置的, 而平板系統的橫豎屏設置是鎖定豎屏的, 可能應用在跳轉到系統相冊界面時突然從橫屏轉向豎屏是某些沖突導致, 至于更深層的原因暫時還沒有能力排查;
"screenOrientation" : [ "landscape-primary" ],
"plus": {"distribute" : {"orientation" : [ "portrait-primary", "portrait-secondary" ], }
}
臨時解決辦法: 將平板電腦的屏幕方向設置為橫屏, 并將其鎖定;
坑2:?plus.barcode.Barcode 掃碼控件 返回數據錯誤
HTML5+ API Reference
創建掃碼控件 掃描比較復雜的條形碼時返回數據錯誤,? 掃到的總是一些不相干的數據, 極小概率可以掃到正確的數據,?代碼中已經配置??條碼類型過濾器, filters,?代碼和條碼如下
scan = new plus.barcode.Barcode('bcid',["plus.barcode.CODE128","plus.barcode.QR"
]);
??
原因分析: 期初以為是配置的碼制問題, 懷疑碼不是code128 的, 看了下內容, 除了 code128, 只能是code39 才支持這種格式的內容, 改了發現還是不行, 好像沒啥用; 也down 了官方demo 下來, 配置這個filters 也是一樣的結果;
經過多次查看官方示例時發現, 傳入的filters 的內容格式似乎不太對, 人家的示例傳入的filters 是沒有引號的!!!
解決辦法: 將filters 的引號去掉;
scan = new plus.barcode.Barcode('bcid',[plus.barcode.CODE128,plus.barcode.QR,// plus.barcode.EAN13,// plus.barcode.EAN8,// plus.barcode.AZTEC,// plus.barcode.DATAMATRIX,// plus.barcode.UPCA,// plus.barcode.UPCE,// plus.barcode.CODABAR,// plus.barcode.CODE39,// plus.barcode.CODE93,// plus.barcode.ITF,// plus.barcode.PDF417,
]);