HarmonyOS 鸿蒙Next:跳转到WPS打开应用内的word、pdf、excel等文件的实现

发布于 1周前 作者 itying888 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:跳转到WPS打开应用内的word、pdf、excel等文件的实现

在应用内点击一个按钮,跳转到鸿蒙版WPS  App打开路径为"xxxx"的.word或.excel文件

8 回复

通过startAbility拉起文件处理类应用,主要是want的配置

// xxx.ets

export default class EntryAbility extends UIAbility {

    onWindowStageCreate(windowStage: window.WindowStage) {

        // 获取文件沙箱路径

        let filePath = this.context.filesDir + '/test.txt';

        // 将沙箱路径转换为uri

        let uri = fileUri.getUriFromPath(filePath);

        // 构造请求数据

        let want: Want = {

        uri: uri,

        type: 'text/plain', // 表示待打开文件的类型

        // 配置被分享文件的读写权限,例如对文件打开应用进行读写授权

        flags: wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION | wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION

        };

        // 调用接口启动

        this.context.startAbility(want)

        .then(() => {

            console.info('Succeed to invoke startAbility.');

        })

        .catch((err: BusinessError) => {

            console.error(`Failed to invoke startAbility, code: ${err.code}, message: ${err.message}`);

        });

    }

    // ...

}

可以参考下面文档:

https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/application-models/file-processing-apps-startup.md

这个例子中want没有指定bundleName,所以会让选择所有支持你want的应用,如果指定bundleName可以指定打开某个应用

请问一下如何实现 在 app 里点击一个按钮,跳转到 wps,在 wps选择文件后返回的自己的app,获取在 wps 选择的文件?

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

您好,我下载后的文件是.doc或者.docx格式的,want里的type参数应该填word还是doc/docx呢?我尝试着俩都不行,就提示“暂无支持此类文件的应用,可前往应用市场查找更多应用”

这个是怎么解决的呢

请问怎样获取其他App的bundle比如WPS的

手机插电脑上,连接deveco ,打开wps 看log信息的右侧,可以选择包名,看看会不会显示,一般都会有

在HarmonyOS中实现跳转到WPS打开应用内的word、pdf、excel等文件,你需要首先确保WPS已经安装在你的设备上,并且支持通过Intent或其他机制被外部应用调用。你可以使用FileProvider或MediaStore API来访问文件,并构造一个Intent,设置Action为ACTION_VIEW,同时设置Data和Type为相应的文件类型(如application/msword, application/pdf, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet等)。最后,调用startActivityForResult()或startActivity()来启动WPS处理文件。如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部