在做cordova項目的時候,感覺應用的響應速度跟原生應用比相差甚遠,一個主要問題就是如加載層、進度條等彈出對話框的效率不行。畢竟項目中的這些彈框都是用dom拼成的,dom的渲染效率和原生控件比起來慢也是正常的。為了能夠讓應用盡可能的接近原生應用的效果,我業余時間做了一套對話框插件,使用后應用的使用體驗立馬有了很大的提升。兼容ios和安卓平台。插件包括加載層、進度條、文件選擇。項目已經放到了github,有興趣的小伙伴可以下載試一試。
插件只支持cordova5.0及以上版本,初始化如下:
cordova plugin add https://github.com/laden666666/cordovaDialogsPlus
這是一個cordova的插件項目,是對cordova的官方插件cordova-plugin-dialogs的擴展,在ios和安卓平台上,提供了進度條、加載層、文件選擇對話框、消息提示等功能。安卓平台的代碼參考了cordova-plugin-dialogs的部分源碼。
api及例子:
1.打開顯示加載層,可以設置加載層的標題和內容
window.navigator.dialogsPlus.showLoading(title, loadingMassage);
隱藏加載層
window.navigator.dialogsPlus.hideLoading();

2.顯示進度條對話框,可以設置進度條的標題和內容,同時這個插件支持一個取消按鈕。
window.navigator.dialogsPlus.progressStart(title, loadingMassage, errorCallback, canCancel, cancelButtonName, cancelCallback);
這個函數返回的是一個json對象,使用這個對象可以對此函數打開的進度條操作,例如設置進度或者隱藏進度條。
var progress = window.navigator.dialogsPlus.progressStart("title","loading...."); progress.setValue(100); progress.hide(successCallback, errorCallback);

3.選擇文件,安卓上你可以使用系統對話框選擇文件,選擇后將獲得所選文件的絕對路徑。但是在ios上,你只能通過此插件依賴的cordova-plugin-camera插件,去選擇相冊里的圖片,這主要是因為ios的文件沙箱機制,我無法向安卓那樣獲取其他應用目錄里的圖片。
window.navigator.dialogsPlus.chooseFile(title, successCallback, errorCallback);
4.通過類似安卓toast消息的形式顯示通知。持續事件的單位是毫秒。
window.navigator.dialogsPlus.showNotice(notice,duration);

