前言

当前市面上几乎所有的打印软件都支持WPS/微信/QQ/钉钉的文档进行打印,但是其实现方案均为需要引导用户进入对应的app选择分享或发送到打印app进行打印,其根本原因在于打印app无法直接获取到WPS/微信/QQ/钉钉等应用内的文档列表,且由于现有的android11之后的文件架构,更是无法获取到应用私有文件目录下的文档

市面上大部分打印应用现状:

【WPS文档】印象焕新:3步打印,体验升级!_WPS

已接入SDK的某打印应用现状:

【WPS文档】印象焕新:3步打印,体验升级!_文档选择_02

那么如何直接获取到WPS内的文档呢?

现在借助于WPS提出的二次开发sdk,可以轻松的从任何app内选择WPS的文档进行打印,甚至可以选择WPS的云文档进行打印,相比之前的操作方案需要7-8步完成,新的获取逻辑将直接降低用户的操作至一步完成,大大降低操作繁琐导致的用户放弃操作的情况。下面先看看Demo效果吧~

【WPS文档】印象焕新:3步打印,体验升级!_文档选择_03

效果展示

【WPS文档】印象焕新:3步打印,体验升级!_WPS_04

如图所示,点击按钮之后,将直接打开WPS的文档选择页,支持最近文档/云文档/本地文档三种方式,选择文件后可以直接返回到原有的app,操作无割裂感,顺滑无比,那么不废话了,直接开干!

【WPS文档】印象焕新:3步打印,体验升级!_文档选择_05

实现步骤

通过WPS社区文章: 解锁WPS二次开发新世界:Android开发用户专属极速接入秘籍!获取相关WPS-SDK集成资料,然后一步步实现完成,先将如何获取WPS端内文档详细步骤总结如下:

添加依赖库

将WPS提供集成资源压缩包里面libs相关的aar文件集成到自己的工程中,具体申请方式,参考:

【金山文档】 WPS SDK集成资料申请

https://365.kdocs.cn/l/clq8BwkjL5lF

SDK初始化

在自己工程Application的onCreate方法中调用SDK的初始化Api, 参考如下

SdkConfig config = new SdkConfig.Builder()
   //开启日志开关
      .setEnableDebug(true)
    //是否禁止弹出安装更新提示框
      .build();
//初始化
WpsSdk.getInstance().init(this,config);

调用获取WPS端内文件功能接口

调用相关API接口,调起WPS文件选择器

参考如下:

FileManagerApi fileManagerApi = WpsSdk.getInstance().getApi(FileManagerApi.class);
        if (fileManagerApi != null) {
            fileManagerApi.selectFiles(MainActivity.this, new ResultCallback<Uri>() {
                @OverridepublicvoidonCallback(Result<Uri> result){
                    if (result.code == 0) {
                        Uri fileUri = result.data;
                        Log.d("WpsSdkLog", "MainActivity selectFiles onCallback 转换输出路径:fileUri=" + fileUri);
                        //从WPS路径拷贝到第三方应用路径//                        String outFile = FileUtil.copyFileFromUri(MainActivity.this, fileUri, "output");//                        Log.d("WpsSdkLog", "MainActivity selectFiles onCallback: outFile=" + outFile);
                        Toast.makeText(MainActivity.this, " 选择的文件路径:" + fileUri, Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(MainActivity.this, " 出现异常:" + result.msg, Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }

PS: 详细可参考 WpsSdkDemo工程 中MainActivity中的selectWpsFiles方法

至此,如何实现在打印应用中集成WPS-SDK调用WPS文档选择器的功能完成,是不是超级简单,而且体验完全可以提升一个量级,如果能够帮助到您,请动动发财的小手来个一键三连💪,老铁们有兴趣可以加Q群:250325397,吹牛摸鱼嗨起来!

【WPS文档】印象焕新:3步打印,体验升级!_打印_06

【WPS文档】印象焕新:3步打印,体验升级!_文档选择_07