ShortcutManager 管理 API(Reat Native 0.63 上测试开发)
捷径管理 API:v 1.0.4 ,效果如图所示
第一步安装npm install react-native-shortcutmanager --save RN 060 以下需要react-native link react-native-react-native unlink react-native-shortcutmanager
第二步,配置代码(注意导包)没有请创建 MyReactPackage -> createNativeModules 并,注册MainApplication -> packages 在代码 MyNativeModulejava 下,导包:; 添加如下代码public { ... //把 MainActivity.class 添加到连接库里 lib ExtraData;} 在代码 MainActivityjava 下,导包:;在生命周期 onCreate 和 onNewIntent 分别添加如下代码@Overridepublic void { ... //--添加这段代码 ShortcutManagerModule;}@Overridepublic void { ... //--添加这段代码 ShortcutManagerModule;}
第三步,拷贝图标菜单图标(android\app\src\main\res\drawable)用 png 格式,放到此目录下,注意先调用 getIconWeightAndHeight查看图标尺寸,单位 px
使用方法
shortcutManager; shortcutManager
以下9个 API addShortcut -> 添加动态图标菜单removeItem -> 移除指定项removeAllItem -> 删除所有动态图标getIconWeightAndHeight -> 获取菜单图标支持宽高getShortcutList -> 获取菜单列表updateShortcut -> 更新指定菜单addPinShortcut -> 添加桌面菜单,需要权限getPinShortcutList -> 获取添加(成功)桌面菜单getExtraData -> 异步获取参数getExtraDataHook -> 指定全局事件(Hook),回调方法(callback)removeShortcutEvent -> 注销全局事件
参数除了通过 getExtraData 获取外,还可通过异步回调事件,事件名:ShortcutClick,参数:extra因 componentDidMount 生命周期原因,APP 启动中,可考虑异步回调事件方式,改变路由等等。 代码如下://导入 react-native-shortcutmanager,就会注册,全局事件 Hook{ shortcutManager}//注销全局事件shortcutManager
菜单管理 APIs 详解
添加动态图标菜单 参数说明 label:菜单标题,长短标签都是此值(setShortLabel、setLongLabel)(必填) icon:菜单图标,无扩展名:因为 Android 带深色、浅色,图标最好带底色(Icon)(必填) extra:菜单传值(JSON,最好用 JSONstringify(Object),序列成字符串)(必填) 成功(then)返回菜单ID(menuId,是一个 UUID) 失败(catch)返回错误对象(err) Tip: 9523 版本不支持,请使用(API 25 以上)
移除指定菜单项(仅限动态菜单,桌面图标自行移除) 参数说明 menuId:菜单Id(添加菜单返回的 UUID,必填) 成功(then)返回成功(true) 失败(catch)返回错误对象(err) * code: 9523 版本不支持,请使用(API 25 以上) * code: -1 menuId 不能为空
移除所有菜单项(仅限动态菜单,桌面图标自行移除) 参数说明 无参数 成功(then)返回成功(true) 失败(catch)返回错误对象(err) Tip: 9523 版本不支持,请使用(API 25 以上)
获取系统支持的图标宽高(设计图标前,先获取查看一下宽高 px) 参数说明 无参数 成功(then)返回系统支持的 Icon (width、height),单位 px 失败(catch)返回错误对象(err) Tip: 9523 版本不支持,请使用(API 25 以上)
获取所有菜单列表 参数说明 无参数 成功(then)返回菜单列表(size:0result:id label) 失败(catch)返回错误对象(err) Tip: 9523 版本不支持,请使用(API 25 以上)
根据菜单Id,更新指定菜单项 参数说明 menuId:需要更新的菜单ID(必填) label:菜单标题(必填) icon:菜单图标(必填) extra:菜单传值(必填,不要传空字符串) 成功(then)返回菜单ID(menuId,是一个 UUID) 失败(catch)返回错误对象(err) * code: 9523 版本不支持,请使用(API 25 以上) * code: -1 menuId 不能为空
添加桌面图标(需要权限执行) 参数说明 label:图标的标题(必填) icon:图标(用上面的路径)(必填) extra:传递参数(JSON,最好用 JSON,序列成字符串)(必填) 成功(then)返回图标ID(iconId,是一个 UUID,可能因权限而失败,图标 ID 不一定有效) 失败(catch)返回错误对象(err) Tip: 9523 版本不支持,请使用(API 25 以上) Tip:不知道是否成功,添加后需手工删除。
获取添加成功的桌面图标 参数说明 无参数 成功(then)返回图标ID(size:0result:id label) 失败(catch)返回错误对象(err) Tip: 9523 版本不支持,请使用(API 25 以上)
异步获取参数对象(可在 componentDidMount 里获取,以判断 APP 启动类型,做相应的事情) 参数说明 callback:异步方法回调(extra) 例如(eg):{ var that = this; }注意:参数只能获取一次,阅后即焚。
导入 react-native-shortcutmanager,就会注册,全局事件 Hook 参数说明 callback:异步方法回调(extra) 例如(eg):{ shortcutManager}
注销全局事件(Hook) 参数说明 无参数 例如(eg):{ shortcutManager}