js-apis-fileShare.md 4.5 KB
Newer Older
Z
zkx 已提交
1 2 3 4 5
# @ohos.fileShare (文件分享)

该模块提供文件分享能力,提供系统应用将公共目录文件统一资源标志符(Uniform Resource Identifier,URI)以读写权限授权给其他应用的接口,授权后应用可通过[@ohos.file.fs](js-apis-file-fs.md)的相关接口进行相关open、read、write等操作,实现文件分享。

> **说明:**
Z
zengyawen 已提交
6 7
>
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zkx 已提交
8 9 10 11 12 13 14 15 16 17 18 19

## 导入模块

```js
import fileShare from '@ohos.fileShare';
```

## fileShare.grantUriPermission

grantUriPermission(uri: string, bundleName: string, mode: number, callback: AsyncCallback<void>): void

对公共目录文件URI进行授权操作,使用callback异步回调。  
Z
zengyawen 已提交
20

Z
zkx 已提交
21
**需要权限**:ohos.permission.WRITE_MEDIA  
Z
zengyawen 已提交
22

Z
zkx 已提交
23
**系统接口**:此接口为系统接口  
Z
zengyawen 已提交
24

Z
zkx 已提交
25 26 27 28 29 30 31 32 33 34 35 36 37
**系统能力**:SystemCapability.FileManagement.AppFileService

**参数:**

| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| uri   | string | 是   | 公共目录文件URI |
| bundleName   | string | 是   | 分享目标的包名 |
| mode   | number | 是   | 授权的权限,参考[wantConstant.Flags](js-apis-app-ability-wantConstant.md#wantconstantflags)<br/>wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION:读授权<br/>wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION:写授权|
 | callback | AsyncCallback&lt;void&gt;  | 是    | 异步授权之后的回调                             |

**错误码:**

Z
zengyawen 已提交
38
以下错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)
Z
zkx 已提交
39

Z
zengyawen 已提交
40 41 42 43 44 45
| 错误码ID                     | 错误信息        |
| ---------------------------- | ---------- |
| 201 | Permission verification failed |
| 202 | The caller is not a system application |
| 401 | The input parameter is invalid |
| 143000001 | IPC error |
Z
zkx 已提交
46 47 48 49 50 51 52

**示例:**

  ```js
import wantConstant from '@ohos.app.ability.wantConstant';


L
lvyuanyuan 已提交
53
let uri = 'file://media/image/8';
Z
zkx 已提交
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
let bundleName = 'com.demo.test';
try {
    fileShare.grantUriPermission(uri, bundleName, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION | wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION, (err) => {
        if (err) {
            console.error("grantUriPermission failed with error: " + err);
            return;
        }
        console.info("grantUriPermission success!");
    });
} catch (error) {
    console.error("grantUriPermission failed with error:" + error);
}
  ```

## fileShare.grantUriPermission

grantUriPermission(uri: string, bundleName: string, mode: number): Promise&lt;void&gt;

将公共目录文件URI进行授权操作,使用Promise异步回调。  
Z
zengyawen 已提交
73

Z
zkx 已提交
74
**需要权限**:ohos.permission.WRITE_MEDIA  
Z
zengyawen 已提交
75

Z
zkx 已提交
76
**系统接口**:此接口为系统接口  
Z
zengyawen 已提交
77

Z
zkx 已提交
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
**系统能力**:SystemCapability.FileManagement.AppFileService  

**参数:**

| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| uri   | string | 是   | 公共目录文件URI |
| bundleName   | string | 是   | 分享目标的包名 |
| mode   | number | 是   | 授权的权限,参考[wantConstant.Flags](js-apis-app-ability-wantConstant.md#wantconstantflags)<br/>wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION:读授权<br/>wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION:写授权|

**返回值:**

  | 类型                           | 说明         |
  | ---------------------------- | ---------- |
  | Promise&lt;void&gt; | Promise对象,无返回值 |

**错误码:**

Z
zengyawen 已提交
96
以下错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)
Z
zkx 已提交
97

Z
zengyawen 已提交
98 99 100 101 102 103
| 错误码ID                     | 错误信息        |
| ---------------------------- | ---------- |
| 201 | Permission verification failed |
| 202 | The caller is not a system application |
| 401 | The input parameter is invalid |
| 143000001 | IPC error |
Z
zkx 已提交
104 105 106 107 108 109

**示例:**

  ```js
import wantConstant from '@ohos.app.ability.wantConstant';

L
lvyuanyuan 已提交
110
let uri = 'file://media/image/8';
Z
zkx 已提交
111 112 113 114 115 116 117 118 119 120 121
let bundleName = 'com.demo.test';
try {
    fileShare.grantUriPermission(uri, bundleName, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION |
      wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION).then(function () {
        console.info("grantUriPermission success!");
    }).catch(function (error) {
        console.error("grantUriPermission failed with error:" + error);
    });
} catch (error) {
    console.error("grantUriPermission failed with error:" + error);
}
Z
zengyawen 已提交
122
  ```