基於Eros的Android端功能增強的工具類庫
阿新 • • 發佈:2018-12-19
當前工具類支援--基礎依賴包wxframework <= 1.0.9 的版本
如果您的基礎依賴包wxframework的版本 > 1.0.9 , 為了使該工具類繼續可以使用, 可前往: Eros-plugin-android-extend
基於Eros框架下的相關功能(weex 與 Android 的互動):
- Android端檔案的檢視,下載,預覽基本功能
- 本地快取大小的獲取,清除功能
- 跳轉至應用市場評分頁(支援三星市場)
- 獲取軟鍵盤的高度
- 獲取螢幕的高度(不包含虛擬按鍵),版本 0.0.9
- 為下載新增token引數,版本 0.1
- 修改開啟Txt文件崩潰的BUG , 版本0.1.1
- 修改下載檔案的進度值的返回值問題, 版本0.1.2
Add dependency
dependencies { implementation 'com.github.heynchy:eros-plugin-filecache-manager:0.1.2' }
檔案操作Module
1. Module名稱: FileModule
2. 相關方法:
2.1 檔案下載
/** * 下載檔案的方法,帶有進度的 * * @param params 必須傳遞(Json 格式),相關引數包含url, fileId, fileName,token(需要許可權的傳遞該引數) * @param success 下載成功的回撥 * @param failure 下載失敗的回撥 * @param progress 下載進度的回撥 */ @JSMethod(uiThread = true) public void downloadFile(String params, final JSCallback success, final JSCallback failure, final JSCallback progress)
2.2 判斷檔案是否存在(是否已下載)
/** * 判斷檔案是否存在 * * @param params Json格式,包含fileId 和 fileName * @param resultCallback 結果回撥(true: 檔案存在 false: 檔案不存在) */ @JSMethod(uiThread = true) public void isFileExist(String params, JSCallback resultCallback)
2.3 預覽檔案(檢視檔案)
/** * 預覽檔案 * * @param params Json 格式,包含fileId 和fileName */ @JSMethod(uiThread = true) public void previewFile(String params)
2.4 開啟應用市場的評分頁(應用詳情頁)
/** * 跳轉至應用市場的評價介面 */ @JSMethod(uiThread = true) public void marketComment()
快取資料操作Module
1. Module 名稱: CacheModule
2. 相關方法
2.1 獲取快取檔案的大小
/** * 獲取應用快取的大小 * * @param callback 結果回撥(返回快取大小的字串, 例如"2.37MB") */ @JSMethod(uiThread = true) public void getCachesSize(JSCallback callback)
2.2 清除快取
/** * 清除應用快取 * * @param callback 結果回撥(如果清除成功則返回true, 否則返回false) */ @JSMethod(uiThread = true) public void clearCaches(JSCallback callback)
Android相關功能的Module
1. Module 名稱: UtilModule
2. 相關方法
2.1 獲取Android手機軟體盤的高度
/** * 獲取Android手機軟鍵盤的高度,返回值包括pxHeight(以px為單位)和dpHeight(以dp為單位)-----非監聽形式 * * @param callback 軟鍵盤彈出的回撥 * @param callbackInvisible 軟鍵盤隱藏的回撥 */ @JSMethod(uiThread = true) public void getSoftKeyInfo(final JSCallback callback, final JSCallback callbackInvisible) /** * 獲取Android手機軟鍵盤的高度----監聽形式 * * @param callback 軟鍵盤彈出的回撥 * @param callbackInvisible 軟鍵盤隱藏的回撥 */ @JSMethod(uiThread = true) public void getSoftKeyInfoAlive(final JSCallback callback, final JSCallback callbackInvisible)
2.1.1 JS端使用說明
weex.requireModule('UtilModule').getSoftKeyInfo(visible => { // 軟鍵盤彈出後的相關操作 var date = JSON.parse(visible); console.log("heyn_OtherNormalModule1: "+ date.pxHeight); console.log("heyn_OtherNormalModule2: "+ date.dpHeight); }, invisible =>{ // 軟鍵盤隱藏後的相關操作 var date = JSON.parse(invisible); console.log("heyn_OtherNormalModule3: "+ date.pxHeight); console.log("heyn_OtherNormalModule4: "+ date.dpHeight); });
2.2 獲取Android手機的螢幕高度(不包含虛擬按鍵)
/** * 獲取Android螢幕尺寸,但是不包括虛擬鍵的高度 * * @param callback 返回值的回撥(已轉換為JS端可用資料) */ @JSMethod(uiThread = true) public void getNoHasVirtualKey(final JSCallback callback)
JS 呼叫方式----舉例——清除快取的使用
<template> <div> <text onclick="click">testMyModule</text> </div> </template> <script> module.exports = { methods: { click: function() { weex.requireModule('CacheModule').clearCaches(params => { if (params){ // 清除成功 } else { // 清除失敗 } }); } } } </script>
注意事項
1. 涉及到相關許可權問題,需要手動新增至自己工程的AndroidManifest.xml中(針對上架的許可權稽核問題)
1.1 檔案操作許可權包括:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /
1.2 網路許可權:
<uses-permission android:name="android.permission.INTERNET" />
1.3 Android 8.0以上版本的APk安裝時,需要安裝許可權:
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />