zoukankan      html  css  js  c++  java
  • android在App应用内打开word、xls、pdf等office文档(基于腾讯tbs)

    疫情还没结束,需求已经开始,捂上口罩来开工了。

    (也好,戴口罩不用化妆,省钱了)

    需求是像微信收藏里那样,列表里有不同类型的文件(office文档,视频,图片,音频),点击查看

    图片和音视频是可以直接用webview的,office文档的话,自己解析肯定是不能够了,看网上都是用腾讯SDK——TBS,然后跟着去GitHub找了很多demo,放在项目里却都用不了

    最后整合了几个demo里的代码使用 ,终于可以了 

     首先下载tbs的jar包放在libs目录下,并在项目中引入


     SDK官方下载地址:http://x5.tencent.com/tbs/sdk.html

    将so包放在jniLib下,不过这个so包只支持32位的手机,不支持64位的,所以build.gradle下的defaultConfig{}中加入ndk配置

     虽然网上都说CPU的架构要只加载armeabi,但是我项目中有其他冲突的SDK,必须得放个armeabi-v7a

    我在build.gradle中做如下设置是没问题的

    清单文件中需具备以下权限

    1 <uses-permission android:name="android.permission.INTERNET" />
    2 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    3 <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/>
    4 <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/>
    5 <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
    6 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

    效果图

      》》》   》》》           

    GitHub源码:https://github.com/yangxch/TBSFileBrowsing

    原文章是https://blog.csdn.net/xch_yang/article/details/80989631

    但是我使用作者的方法在android9.0以下都可以打开office,9.0以上就不行,提示插件加载失败之类的,之后在自定义的Application类里加上了提前初始化X5内核的代码

     1 //初始化tbs的x5
     2         QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
     3 
     4             @Override
     5             public void onViewInitFinished(boolean arg0) {
     6                 // TODO Auto-generated method stub
     7                 //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
     8             }
     9 
    10             @Override
    11             public void onCoreInitFinished() {
    12                 // TODO Auto-generated method stub
    13             }
    14         };
    15         QbSdk.initX5Environment(this,cb);

    这样再跑在9.0的手机上就可以了

  • 相关阅读:
    form表单里submit的提交,如何不让其阻止ajax的调用
    前端模拟后台json 调接口
    纯前端实现搜索功能、模糊查询
    js如何获取select下拉框的value以及文本内容 并赋值
    清除表单input输入框内数据
    js动态生成的dom mouseover事件无效
    jq获取当前日期xxxx-xx-xx格式
    获取自定义属性、 data-* 的值
    媒体查询不起作用
    shell_判断语句If
  • 原文地址:https://www.cnblogs.com/Sharley/p/12462860.html
Copyright © 2011-2022 走看看