日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 基于x5Webview 浏览文件 office文档

發布時間:2023/12/31 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 基于x5Webview 浏览文件 office文档 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

此功能基于騰訊TBS 的X5Webview 實現

先上圖

?

第一步:下載jar包添加到項目

?下載地址?騰訊瀏覽服務-SDK下載 (tencent.com)?集成看下官方文檔

開發時候 測試機Android11 需要先申請11 特殊權限

我在MainActivity里申請的Android 11 文件權限

public void checkPermissions() {//申請Android11特殊權限requestManagerPermission();}private void requestManagerPermission() {//當系統在11及以上if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {// 沒文件管理權限時申請權限if (!Environment.isExternalStorageManager()) {Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);intent.setData(Uri.parse("package:" + getPackageName()));startActivityForResult(intent, 100);}else {Intent intent = new Intent(this,WebActivity.class);startActivity(intent);}}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == 100 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {//用戶拒絕權限,重新申請if (!Environment.isExternalStorageManager()) {requestManagerPermission();}}}

創建WebActivity? 實現文件下載到sd卡? 并且以來x5Webview進行瀏覽

private void downloadFile(final String url, final String path) {RequestParams requestParams = new RequestParams(url);requestParams.setSaveFilePath(path);// 下載完成后自動為文件命名requestParams.setAutoRename(true);x.http().get(requestParams, new Callback.CacheCallback<File>() {@Overridepublic boolean onCache(File result) {return false;}@Overridepublic void onSuccess(File result) {Log.d("success", "下載成功" + path);// 下載成功后加載文件displayFile(BASE_PATH, docName);}@Overridepublic void onError(Throwable ex, boolean isOnCallback) {Log.e("success", "下載失敗" + ex.getMessage().toString());Toast.makeText(WebActivity.this, "文件下載失敗", Toast.LENGTH_SHORT).show();}@Overridepublic void onCancelled(CancelledException cex) {}@Overridepublic void onFinished() {}});}@Overrideprotected void onDestroy() {super.onDestroy();mTbsReaderView.onStop();}@Overridepublic void onCallBackAction(Integer integer, Object o, Object o1) {Log.d("call", "==================+++++====-=-=++" + integer);}private void displayFile(String filePath, String fileName) {//增加下面一句解決沒有TbsReaderTemp文件夾存在導致加載文件失敗String bsReaderTemp =BASE_PATH;File bsReaderTempFile = new File(bsReaderTemp);if (!bsReaderTempFile.exists()) {Log.e("print", "準備創建/TbsReaderTemp!!");boolean mkdir = bsReaderTempFile.mkdir();if (!mkdir) {Log.e("print", "創建/TbsReaderTemp失敗!!!!!");}}Bundle bundle = new Bundle();bundle.putString("filePath", filePath);bundle.putString("tempPath", BASE_PATH);boolean result = mTbsReaderView.preOpen(getFileType(filePath.toString()), false);Log.e("print", "查看文檔---" + result);if (result) {mTbsReaderView.openFile(bundle);} else {}}/*** 后綴名的判斷** @param paramString* @return*/private String getFileType(String paramString) {String str = "";if (TextUtils.isEmpty(paramString)) {Log.e("print", "paramString---->null");return str;}Log.e("print", "paramString:" + paramString);int i = paramString.lastIndexOf('.');if (i <= -1) {Log.e("print", "i <= -1");return str;}str = paramString.substring(i + 1);Log.e("print", "paramString.substring(i + 1)------>" + str);return str;}

xml文件?

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><RelativeLayoutandroid:id="@+id/tbsView"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/teal_200"/></LinearLayout>

下載地址?demo? ?寫于2022-3-23? ?聯系作者 352679497@qq.com

總結

以上是生活随笔為你收集整理的Android 基于x5Webview 浏览文件 office文档的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。