接口说明

类型定义

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) => {});

results matching ""

    No results matching ""