关于文件访问权限:
- 插件默认拥有私有目录
/data/data/com.ratta.supernote.pluginhost/files/plugins/<pluginID>的读取、写入、删除权限。 sdcard目录下Document、EXPORT、INBOX、MyStyle、Note、SCREENSHOT这几个目录,读取、写入、删除权限默认都不具备,需要分别申请plugin.permission.FILE:READ、plugin.permission.FILE:WRITE、plugin.permission.FILE:DELETE后才能使用;外接 SD 卡、OTG 等外部存储设备的访问同样受这三种权限管控;除此之外的其他目录,无论是否申请相关权限,都无法获得读取、写入、删除权限。
PluginConfig.json 中通过 uses-permissions 字段声明该权限(参考插件权限),否则会调用失败。
返回
Promise<number>:用户授权结果,0表示不允许,1表示仅本次允许,2表示始终允许,-1表示用户直接关闭了申请弹框(未做选择,效果等同不允许,下次调用会重新弹框)
- 宿主可能会弹出授权对话框,供用户在“仅本次允许 / 始终允许 / 不允许”之间选择(默认选中“仅本次允许”)
desc只用于自定义“不允许”状态弹框中的说明文案,不会改变权限状态或用户可选择的授权选项。- “仅本次允许”只在本次插件会话内有效,插件退出或关闭后会失效;只有“始终允许”会被持久化保存,重启插件后依然有效,详见插件权限
- 当
permission不是非空字符串,或传入的desc不是字符串时,会抛出参数校验异常 - 当
permission不在支持列表内时,会抛出异常(错误码1502) - 当插件未在
PluginConfig.json的uses-permissions中声明该权限时,会抛出异常(错误码1500)