当前位置:   article > 正文

Android 用腾讯X5内核加载 word ppt 先下载在加载。_android腾讯x5内核解析ppt文件

android腾讯x5内核解析ppt文件

Android 用腾讯X5内核加载 word ppt  先下载在加载。

 

第一步 下载Sdk 导入项目  

 

 第二步 下载 pdf word到本地

 

1. 调用下载  DownloaderTask task = new DownloaderTask();   task.execute();

  1. /**
  2. * 任务类
  3. */
  4. private class DownloaderTask extends AsyncTask<String, Void, String> {
  5. @Override
  6. protected String doInBackground(String... params) {
  7. String url = "下载地址";
  8. String fileName = url.substring(url.lastIndexOf("/") + 1);
  9. try {
  10. fileName = URLDecoder.decode(fileName, "UTF-8");
  11. } catch (UnsupportedEncodingException e) {
  12. e.printStackTrace();
  13. }
  14. // MyLogger.i("download", "fileName=" + fileName);
  15. try {
  16. URL resUrl = new URL(url);
  17. HttpURLConnection conn = (HttpURLConnection) resUrl.openConnection();
  18. conn.connect();
  19. InputStream input = conn.getInputStream();
  20. DownloadUtils.writeToSDCard(fileName, input);
  21. input.close();
  22. return fileName;
  23. } catch (Exception e) {
  24. e.printStackTrace();
  25. return null;
  26. }
  27. }
  28. @Override
  29. protected void onCancelled() {
  30. super.onCancelled();
  31. }
  32. @Override
  33. protected void onPostExecute(String result) {
  34. super.onPostExecute(result);
  35. DownloadUtils.closeProgressDialog();
  36. if (result == null) {
  37. // ToastUtils.showShortToast(ClassroomlearningActivity.this, R.string.msg_downloaderror);
  38. return;
  39. }
  40. // ToastUtils.showShortToast(ClassroomlearningActivity.this, R.string.msg_downloadsuccess);
  41. String dir = DownloadUtils.getDownloadPath() + result;
  42. //下载完 跳转到 WabActivitry 页面 使用 TbsReaderView 加载 H5
  43. startActivity(new Intent(getBaseContext(), WabActivitry.class).putExtra("path", dir));
  44. // Wps.createInstance(ClassroomlearningActivity.this).open(new File(dir));
  45. }
  46. @Override
  47. protected void onPreExecute() {
  48. super.onPreExecute();
  49. DownloadUtils.showProgressDialog(ClassroomlearningActivity.this);
  50. }
  51. @Override
  52. protected void onProgressUpdate(Void... values) {
  53. super.onProgressUpdate(values);
  54. }
  55. }

 第三步 根据路径加载 Wabview

  1. layout 和 xml代码
  2. <RelativeLayout
  3. android:id="@+id/X5TbsView"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:background="@color/colorPrimary"
  7. app:layout_constraintBottom_toBottomOf="parent"
  8. app:layout_constraintLeft_toLeftOf="parent"
  9. app:layout_constraintRight_toRightOf="parent"
  10. app:layout_constraintTop_toTopOf="parent" />
  11. 调用代码
  12. public void displayFile(String fileModel) {
  13. mTbsReaderView = new TbsReaderView(this, this);
  14. //增加下面一句解决没有TbsReaderTemp文件夹存在导致加载文件失败
  15. String bsReaderTemp = tbsReaderTemp;
  16. // Log.i("eeee","tbsReaderTemp"+bsReaderTemp);
  17. File bsReaderTempFile = new File(bsReaderTemp);
  18. if (!bsReaderTempFile.exists()) {
  19. Log.d("print", "文件不存在准备创建/TbsReaderTemp!!");
  20. boolean mkdir = bsReaderTempFile.mkdir();
  21. if (!mkdir) {
  22. Log.d("print", "创建/TbsReaderTemp失败!!!!!");
  23. }
  24. Toast.makeText(this, "文件不存在!", Toast.LENGTH_SHORT).show();
  25. }
  26. mRelativeLayout.addView(mTbsReaderView, new RelativeLayout.LayoutParams(-1, -1));
  27. Bundle bundle = new Bundle();
  28. bundle.putString("filePath", fileModel);
  29. bundle.putString("tempPath", "" + getIntent().getStringExtra("name"));
  30. boolean result = mTbsReaderView.preOpen(getFileType("" + fileModel), false);
  31. Log.d("print", "查看文档---" + result);
  32. if (result) {
  33. mTbsReaderView.openFile(bundle);
  34. } else {
  35. }
  36. }
  37. private String getFileType(String paramString) {
  38. String str = "";
  39. if (TextUtils.isEmpty(paramString)) {
  40. Log.d("print", "paramString---->null");
  41. return str;
  42. }
  43. Log.d("print", "paramString:" + paramString);
  44. int i = paramString.lastIndexOf('.');
  45. if (i <= -1) {
  46. Log.d("print", "i <= -1");
  47. return str;
  48. }
  49. str = paramString.substring(i + 1);
  50. Log.d("print", "paramString.substring(i + 1)------>" + str);
  51. return str;
  52. }
  53. //消失记得销毁
  54. @Override
  55. protected void onDestroy() {
  56. super.onDestroy();
  57. if (mTbsReaderView != null) {
  58. mTbsReaderView.onStop();
  59. mTbsReaderView.destroyDrawingCache();
  60. }
  61. }

 

3. 切记初始化 X5内核 

 

  1. public class Myapp extends Application {
  2. @Override
  3. public void onCreate() {
  4. super.onCreate();
  5. ;
  6. //x5内核初始化接口
  7. QbSdk.initX5Environment(getApplicationContext(), cb);
  8. }
  9. /**
  10. * 搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。
  11. */
  12. QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
  13. @Override
  14. public void onViewInitFinished(boolean arg0) {
  15. //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
  16. Log.e("APPAplication", " onViewInitFinished is " + arg0);
  17. }
  18. @Override
  19. public void onCoreInitFinished() {
  20. Log.e("APPAplication", " onCoreInitFinished");
  21. }
  22. };
  23. }

 

demo 下载地址

https://download.csdn.net/download/qq_35742975/16333207

 

 

 

 

 

 

 

 

 

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/175028
推荐阅读
相关标签
  

闽ICP备14008679号