当前位置:   article > 正文

Android使用腾讯X5内核,离线浏览ppt,doc,xls,pdf文件_android x5打开本地文件

android x5打开本地文件

最近由于项目需求,需要在Android Box上浏览ppt,pdf,doc,xls文件,在网上看了很多相关文档,可以同时支持这几种文件格式的第三方库,WPS,腾讯X5内核。而wps sdk是通过卡开已经安装的wps app打开想要浏览的文件,不符合项目需求。经测试X5内核可以在应用内部打开相关文档。

TbsReaderView接口是早期X5内核提供的一个支持ppt,pdf,doc,xls格式阅读的接口,但是在2023年4月以后X5内核sdk就全面下线了文档浏览功能,不再支持,但是提供了新的文档浏览服务。

下面就介绍文档浏览服务如何接入。

第一步:注册腾讯云,并进行实名认证

第二步:购买腾讯浏览服务,腾讯浏览服务_文档浏览引擎_文档浏览SDK-腾讯云

根据需求选择产品规格。

第三步:获取licensekey,腾讯浏览服务 免费试用公网版文档浏览引擎-操作指南-文档中心-腾讯云

在获取licensekey的时候,需要填写app的包名相关信息。

第四步:下载腾讯浏览服务SDK,腾讯浏览服务 腾讯浏览服务 SDK 下载-SDK 文档-文档中心-腾讯云

要根据目标设备的架构,选择对应的SDK,不然会遇到一些莫名其妙的错误。

第五步:在App中引用下载的sdk,在工程根目录下创建 libs 目录,将 aar 文件放到 libs 目录下,在 App 模块的 build.gradle 中引入 SDK,例如:

implementation fileTree(dir: 'libs', include: ['TbsFileSdk_xxxx.aar'])

第六步:配置混淆,需要在 proguard-rules.pro 文件中添加如下配置:

  1. -dontwarn com.tencent.tbs.reader.**
  2. -keep class com.tencent.tbs.reader.** {
  3. *;
  4. }

第七步:接下来就是怎么使用sdk.

        新建:activity_preview.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical">
  6. // 自定义标题栏
  7. <LinearLayout
  8. android:id="@+id/reader_top"
  9. android:layout_width="match_parent"
  10. android:layout_height="50dp"
  11. android:orientation="horizontal"
  12. android:background="#576B95">
  13. <Button
  14. android:id="@+id/goto3"
  15. android:layout_width="wrap_content"
  16. android:layout_height="wrap_content"
  17. android:text="跳到第三页"/>
  18. <Button
  19. android:id="@+id/goto7"
  20. android:layout_width="wrap_content"
  21. android:layout_height="wrap_content"
  22. android:text="跳到第7页"/>
  23. </LinearLayout>
  24. // 内容显示区域
  25. <FrameLayout
  26. android:id="@+id/content"
  27. android:layout_width="match_parent"
  28. android:layout_height="match_parent"/>
  29. </LinearLayout>

        新建:activity_main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical">
  6. <Button
  7. android:id="@+id/btn_open_pdf_file"
  8. android:layout_width="match_parent"
  9. android:layout_height="wrap_content"
  10. android:layout_centerInParent="true"
  11. android:text="打开pdf" />
  12. <Button
  13. android:id="@+id/btn_open_ppt_file"
  14. android:layout_width="match_parent"
  15. android:layout_height="wrap_content"
  16. android:layout_centerInParent="true"
  17. android:text="打开ppt" />
  18. <Button
  19. android:id="@+id/btn_open_doc_file"
  20. android:layout_width="match_parent"
  21. android:layout_height="wrap_content"
  22. android:layout_centerInParent="true"
  23. android:text="打开doc" />
  24. <Button
  25. android:id="@+id/btn_open_xls_file"
  26. android:layout_width="match_parent"
  27. android:layout_height="wrap_content"
  28. android:layout_centerInParent="true"
  29. android:text="打开xls" />
  30. </LinearLayout>

        新建MainActivity.java

  1. import android.os.Bundle;
  2. import android.util.Log;
  3. import android.widget.Toast;
  4. import androidx.appcompat.app.AppCompatActivity;
  5. import com.tencent.tbs.reader.ITbsReader;
  6. import com.tencent.tbs.reader.ITbsReaderCallback;
  7. import com.tencent.tbs.reader.TbsFileInterfaceImpl;
  8. public class MainActivity extends AppCompatActivity {
  9. private final String TAG = "MainActivity";
  10. private static boolean isInit = false;
  11. @Override
  12. protected void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.activity_main);
  15. initUI();
  16. // 初始化Engine,见下文
  17. // int ret = initEngine();
  18. // if (ret != 0) {
  19. // Toast.makeText(getApplicationContext(), "初始化Engine失败 ret = " + ret, Toast.LENGTH_SHORT).show();
  20. // } else {
  21. // Toast.makeText(getApplicationContext(), "初始化Engine成功", Toast.LENGTH_SHORT).show();
  22. // isInit = true;
  23. // }
  24. initEngineAsync();
  25. }
  26. // public int initEngine() {
  27. // //设置licenseKey
  28. // TbsFileInterfaceImpl.setLicenseKey("DILhnHTUqFJqHXNxWTPD78G2KSYda6KxonenhXwdGpWdOkM4hH9giouTByzZl3kN");
  29. //
  30. // int ret = -1;
  31. //
  32. // //初始化Engine
  33. // if (!TbsFileInterfaceImpl.isEngineLoaded()) {
  34. // ret = TbsFileInterfaceImpl.initEngine(this);
  35. // }
  36. //
  37. // return ret;
  38. // }
  39. //异步
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/686289
推荐阅读
相关标签
  

闽ICP备14008679号