赞
踩
最近由于项目需求,需要在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 文件中添加如下配置:
- -dontwarn com.tencent.tbs.reader.**
- -keep class com.tencent.tbs.reader.** {
- *;
- }
第七步:接下来就是怎么使用sdk.
新建:activity_preview.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"
- android:orientation="vertical">
- // 自定义标题栏
- <LinearLayout
- android:id="@+id/reader_top"
- android:layout_width="match_parent"
- android:layout_height="50dp"
- android:orientation="horizontal"
- android:background="#576B95">
- <Button
- android:id="@+id/goto3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="跳到第三页"/>
- <Button
- android:id="@+id/goto7"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="跳到第7页"/>
- </LinearLayout>
-
- // 内容显示区域
- <FrameLayout
- android:id="@+id/content"
- android:layout_width="match_parent"
- android:layout_height="match_parent"/>
- </LinearLayout>
新建:activity_main.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"
- android:orientation="vertical">
-
- <Button
- android:id="@+id/btn_open_pdf_file"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:text="打开pdf" />
-
- <Button
- android:id="@+id/btn_open_ppt_file"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:text="打开ppt" />
-
- <Button
- android:id="@+id/btn_open_doc_file"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:text="打开doc" />
- <Button
- android:id="@+id/btn_open_xls_file"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:text="打开xls" />
-
- </LinearLayout>
新建MainActivity.java
- import android.os.Bundle;
- import android.util.Log;
- import android.widget.Toast;
-
- import androidx.appcompat.app.AppCompatActivity;
-
- import com.tencent.tbs.reader.ITbsReader;
- import com.tencent.tbs.reader.ITbsReaderCallback;
- import com.tencent.tbs.reader.TbsFileInterfaceImpl;
-
-
- public class MainActivity extends AppCompatActivity {
- private final String TAG = "MainActivity";
- private static boolean isInit = false;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- initUI();
-
- // 初始化Engine,见下文
- // int ret = initEngine();
- // if (ret != 0) {
- // Toast.makeText(getApplicationContext(), "初始化Engine失败 ret = " + ret, Toast.LENGTH_SHORT).show();
- // } else {
- // Toast.makeText(getApplicationContext(), "初始化Engine成功", Toast.LENGTH_SHORT).show();
- // isInit = true;
- // }
- initEngineAsync();
- }
-
-
- // public int initEngine() {
- // //设置licenseKey
- // TbsFileInterfaceImpl.setLicenseKey("DILhnHTUqFJqHXNxWTPD78G2KSYda6KxonenhXwdGpWdOkM4hH9giouTByzZl3kN");
- //
- // int ret = -1;
- //
- // //初始化Engine
- // if (!TbsFileInterfaceImpl.isEngineLoaded()) {
- // ret = TbsFileInterfaceImpl.initEngine(this);
- // }
- //
- // return ret;
- // }
-
- //异步
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。