在手機上使用mobile web或 codova開發app
當focus在input上
鍵盤浮起時window.innerHeight是會被改變
當blur收起鍵盤後 innerHeight又會回復正常
如果content有使用iscroll
innerHeight的異動 可能就造成scroll異常
必須要在innerHeight異動時 重新依照取到的外部高度
設定iscroll wrapper的height 才能正常運作
2019年6月27日 星期四
2019年6月20日 星期四
Android 7後多語系的異動造成亂碼問題
最近遇到原本在Android上透過Socket做列印
安裝在Andorid7以上Device上 印出一堆的亂碼
查了一下
是7.0以後語系預設會讀到zh-Hant-TW
因此原本設定在res內的values-zh 就變成沒有被讀取
必須把目錄名稱改成values-zh-rTW才會正確顯示
而在Java檔案內需要判斷locale的部分
Locale.getDefault()拿到的值也會不同
如果需要做判斷做後續工作,這部分也需要被修改
附帶 Locale.getDefault()拿到的是Locale物件
需用toString轉換過 才能做字串比對
參考連結
https://litotom.com/2017/05/02/android7-locale-language/
安裝在Andorid7以上Device上 印出一堆的亂碼
查了一下
是7.0以後語系預設會讀到zh-Hant-TW
因此原本設定在res內的values-zh 就變成沒有被讀取
必須把目錄名稱改成values-zh-rTW才會正確顯示
而在Java檔案內需要判斷locale的部分
Locale.getDefault()拿到的值也會不同
如果需要做判斷做後續工作,這部分也需要被修改
附帶 Locale.getDefault()拿到的是Locale物件
需用toString轉換過 才能做字串比對
參考連結
https://litotom.com/2017/05/02/android7-locale-language/
2019年6月18日 星期二
使用babel-polyfill讓ES6 API可在舊版webview運作
現在的專案都是以ES6寫babel轉換成ES5
但預設並不會對於本身ES6 本身的API
像window.Set 必須在WebView 版本38以上才有支援
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Set
所以即使是用babel轉換過的程式碼
在比較舊的Browser上 可能會無法運作
例如Android4.4上的WebView 版本為30
就無法執行
若要強制讓babel去轉換API就需要透過polyfill
注意 這裡是在程式裡面用所以是以--save安裝 而非 --save-dev
在程式進入點(entry.js)的最上方
即可正常運作
但預設並不會對於本身ES6 本身的API
像window.Set 必須在WebView 版本38以上才有支援
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Set
所以即使是用babel轉換過的程式碼
在比較舊的Browser上 可能會無法運作
例如Android4.4上的WebView 版本為30
就無法執行
若要強制讓babel去轉換API就需要透過polyfill
注意 這裡是在程式裡面用所以是以--save安裝 而非 --save-dev
npm install babel-polyfill --save
在程式進入點(entry.js)的最上方
import 'babel-polyfill'
即可正常運作