锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

Android 基于x5Webview 浏览文件 office文档

时间:2023-09-21 01:07:02 x5y2传感器实物拍摄感应开关

该功能以腾讯为基础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);             }         }     }      @Override     protected 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() {             @Override             public boolean onCache(File result) {                 return false;             }              @Override             public void onSuccess(File result) {                 Log.d("success", "下载成功"   path);                 // 下载成功后加载文件                 displayFile(BASE_PATH, docName);             }              @Override             public void onError(Throwable ex, boolean isOnCallback) {                 Log.e("success", "下载失败"   ex.getMessage().toString());                 Toast.makeText(WebActivity.this, "文件下载失败", Toast.LENGTH_SHORT).show();             }              @Override             public void onCancelled(CancelledException cex) {              }             @Override             public void onFinished() {              }         });     }      @Override     protected void onDestroy() {         super.onDestroy();         mTbsReaderView.onStop();     }          @Override     public 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!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文件

      

下载地址 demo   写于2022-3-23   联系作者 352679497@qq.com

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章