Android wps文件下载、预览

可能大家都遇到了Android处理办公文件不太方便的问题,先强调一点Android是做不到在线预览的,目前的解决方案都是先下载在打开,这里我提供我常用的两种方案,仅供参考,如有不对的还请批评指正,也欢迎沟通交流。

  • Android wps文件下载、预览
    • 跳转浏览器打开下载
    • 采用TbsSDK可App内部查看文件

跳转浏览器打开下载

这中方案是最简单的,直接跳转到我们手机浏览器,浏览器来接管后面用户下载浏览的工作。
情景一
通过一个Button跳转

Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");Uri uri = Uri.parse(url);//url文件地址intent.setData(uri);startActivity(intent);

情景二
今天我们的项目经理的需求,App内部使用WebView打开了一个网页,网页里包含一个文件地址,点击文件链接跳转浏览器

 webView.setWebViewClient(new WebViewClient() {            @Override            public boolean shouldOverrideUrlLoading(WebView view, String url) {                if (url.contains(".pdf") || url.contains(".zip") || url.contains(".xls") || url.contains(".doc")) {                    Intent intent = new Intent();                    intent.setAction("android.intent.action.VIEW");                    Uri uri = Uri.parse(url);                    intent.setData(uri);                    startActivity(intent);//打开浏览器                    return true;                } else {                    view.loadUrl(url); // 在当前的webview中跳转到新的url                    return false;                }            }        });

这个地方我们需要new 一个WebViewClient给WebView, 在里面去拦截网页跳转事件,当url地址包含文件后缀时跳转到浏览器,否则继续加载该url

采用TbsSDK可App内部查看文件

TbsSDK是腾讯提供的一种共享X5内核的sdk,只要你的手机安装有QQ浏览器、QQ、VX等腾讯软件就可以共享他们的X5内核功能。官网地址

然后我们这里简单的说一下怎么使用
SDK接入
jar包方式集成 您可将官网下载的jar包复制到您的App的libs目录,并且通过Add As Library的方式集成TBS SDK
Gradle方式集成 您可以在使用SDK的模块的dependencies中添加引用进行集成:

api 'com.tencent.tbs.tbssdk:sdk:43903'

权限配置

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_PHONE_STATE" />

创建BaseApplication,调用TbsDownloader 的 needDownload(Context context, boolean oversea) 方法,并在Menifest文件中声明BaseApplication。

public class BaseApplication extends Application {@Overridepublic void onCreate() {    super.onCreate();    TbsDownloader.needDownload(getApplicationContext(), false);}}

添加com.tencent.smtt.sdk.WebView布局

<com.tencent.smtt.sdk.WebView    android:id="@+id/tbs_web_view"    android:layout_width="match_parent"    android:layout_height="wrap_content"/>

使用tbsWebView控件打开文件

HashMap<String, String> params = new HashMap<String, String>(); params.put("style", "1"); params.put("local", "true"); params.put("memuData", jsondata); QbSdk.openFileReader(ctx,/sdcard/xxx.doc”, params,callback);

tbsWebView其他使用方式基本与原生WebView相同

更多相关文章

  1. 箭头函数的基础使用
  2. NPM 和webpack 的基础使用
  3. Python list sort方法的具体使用
  4. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  5. busybox应用于android系统
  6. Android(安卓)开发手记之NDK 编程实例
  7. Unity5与Android交互通信(使用Android(安卓)Studio2.4) 详细操作一
  8. Android(安卓)项目在Eclipse中的目录结构
  9. Android内存泄漏调试

随机推荐

  1. [Android] ImageView.ScaleType设置图解
  2. 在Android上使用Http客户端的选择(译文)
  3. Android学习系列(40)--Android主题和样式
  4. Android学习之使用RadioGroup与RadioButt
  5. Android统计EditText的字母数字以及汉字
  6. Android(安卓)Camera2拍照(一)——使用Surf
  7. Android实现数据存储技术
  8. Android(安卓)技术专题系列之五 -- 本地化
  9. Android(安卓)ImageView的scaleType属性
  10. android 三级联动开源框架用法