接口说明
类型定义
type TError = "Can't access Siri!" | 'Not supported!' | 'Invalid parameters!' | 'Not supported type: siri' | 'Cancelled!' | 'Not Found!' | null;
type baseResult = null | 'success';
/*
undetermined 未询问状态,可以调用接口询问用户
restricted 部分受限
denied 被拒绝,这个时候调用询问已经不会弹窗了,可以提示用户手动开启
granted 获得权限
unknown 未知错误
not support 不支持
*/
interface IPerm {
status: "undetermined" | "restricted" | "denied" | "granted" | "unknown" | "not support";
}
interface IAddParams {
url: string;
version: string;
icon: string;
token: string;
sceneName: string;
sceneId: string;
suggestedInvocationPhrase: string;
}
interface IShortcut {
UDID: string;
sceneId: string;
}
初始化
[setToken]
使用RNGizwitsShortcut对象前,先通过改初始化接口初始化对象,参数很简单,只需要token即可
import RNGizwitsShortcut from 'react-native-gizwits-shortcut';
// 传入Gizwits SDK登录接口返回的用户token
RNGizwitsShortcut.setToken(token, (err: TError,result: baseResult) => { });
权限相关
[isSiriShortcutEnabled]
完成初始化之后,建议在操作前询问app是否有访问Siri权限,我们提供以下接口来满足询问需求:
// 系统为iOS 12.0或以后,则返回支持。
RNGizwitsShortcut.isSiriShortcutEnabled((err: TError,result: boolean) => { });
[requestSiriPermission]
请求Siri访问权限
const result: IPerm = await RNGizwitsShortcut.requestSiriPermission();
[siriPermissionStatus]
查询Siri访问权限当前状态
const result: IPerm = await RNGizwitsShortcut.siriPermissionStatus();
[addSiriShortcut]
添加Shortcut
const params: IAddParams = {
url: '', // 手动场景请求的url
version: '1.0', // 版本号,可根据需要传入
icon: '', // 手动场景icon名称,可通过SceneIcon.bundle查看
token: '', // 用户token
sceneName: "abc", // 手动场景名称
sceneId: "1", // 手动场景id
suggestedInvocationPhrase: "", // 添加Shortcut时的建议语
}
RNGizwitsShortcut.addSiriShortcut(params, (error: TError, result: baseResult) => {});
[getAllSiriShortcut]
获取当前Shortcut列表
}
RNGizwitsShortcut.getAllSiriShortcut((error: TError, result: IShortcut[]) => {});
[editSiriShortcut]
编辑Shortcut
const params: IShortcut = {
UDID: '', //shortcut唯一id
sceneId: '', // 手动场景id
}
RNGizwitsShortcut.editSiriShortcut(params, (error: TError, result: baseResult) => {});