08 插件导航模块 - MiEcosystem/miot-plugin-sdk GitHub Wiki
扩展程序包参数, 主要来自于packageInfo.json 的配置与系统本身的特性
Export: public
Doc_name: 插件导航模块
Doc_index: 8
Doc_directory: sdk
Example
import {Package} from 'miot'
import Package from 'miot/Package'
Package.entrance
Package.entryInfo
Package.exitInfo={...}
Package.pluginID
Package.packageID
Package.packageName
Package.version
Package.minApiLevel
Package.buildType
Package.isDebug
Package.models
Package.entry(App, ()=>{...});
Package.exit({...});
-
miot/Package
-
module.exports ⏏
-
static
-
.exitInfo :
json
- .rnVersion
- .BLEAutoCheckUpgradeOptions
-
.entrance :
Entrance
-
.pageParams :
object
-
.entryInfo :
json
-
.packageID :
int
-
.version :
string
-
.packageName :
string
-
.minApiLevel :
int
-
.buildType :
string
-
.isDebug :
boolean
-
.models :
string
- .entry(RootComponent, afterPackageEntry)
- .exit(info)
-
.installModule(moduleId) ⇒
json
-
.exitInfo :
-
inner
- ~_packageActiveDate
-
~Entrance :
object
-
~PackageEvent :
object
- "packageWillLoad"
- "packageDidLoaded"
- "packageWillPause"
- "packageDidResume"
- "packageAuthorizationAgreed"
- "packageAuthorizationCancel" (autoExit)
- "packageReceivedInformation"
- "packageWillExit"
- "packageViewWillAppear"
- "packageReceivedOutAppInformation"
- "packageViewWillDisappearIOS"
- "packageWillStopAndroid"
-
~EVENT_TYPE :
enum
-
~extra :
Object
- ~onPluginEvent(type, data)
-
static
-
module.exports ⏏
Kind: Exported member
Export:
退出后返回给调用者的信息, 例如自定义场景
Kind: static property of module.exports
Example
//自定义trigger场景保存退出 finishCustomSceneSetupWithTrigger
var trigger = Package.entryInfo;
trigger.payload = { 'xxx': 'xxx' };//trigger payload 数据
Package.exitInfo = trigger;
//自定义action场景保存退出 finishCustomSceneSetupWithAction
var action = Package.entryInfo;
action.payload = { 'xxx': 'xxx' };//action payload 数据
Package.exitInfo = action;
...
Package.exit();
获取React Native版本
Kind: static property of module.exports
自动BLE/Mesh设备升级检查,即使设置了alertDialog为true,也仅仅会在直连完成后才弹窗,红点进插件就可以显示
Kind: static property of module.exports
Since: 10039
Param | Description |
---|---|
redPoit | 红点 |
alertDialog | 弹窗 |
authType | 蓝牙连接类型(0: 普通小米蓝牙协议设备(新接入设备已废弃该类型),1: 安全芯片小米蓝牙设备(比如锁类产品) 4: Standard Auth 标准蓝牙认证协议(通常2019.10.1之后上线的新蓝牙设备) 5: mesh 设备) |
Example
Package.BLEAutoCheckUpgradeOptions = {
enable: true,
redPoint: true,
alertDialog: true,
authType: 5
}
入口类型,Main or Scene or 用户自定义(Host.ui.openPluginPage(did, pageName, pageParams) 中 pageName的值)
Kind: static constant of module.exports
Read only: true
入口类型参数, Host.ui.openPluginPage(did, pageName, pageParams) 中 pageParams的值
Kind: static constant of module.exports
Read only: true
打开rn插件时,从native传递到RN的初始化数据信息
Kind: static constant of module.exports
Read only: true
小米开放平台生成的插件包 ID
Kind: static constant of module.exports
Read only: true
程序包的版本号, 来自于project.json 的 version
Kind: static constant of module.exports
Read only: true
程序包名, 来自于project.json 的 package_name
Kind: static constant of module.exports
Read only: true
扩展程序适用的最低 API level, 来自于project.json 的 min_api_level
Kind: static constant of module.exports
Read only: true
发布类型, debug | release
Kind: static constant of module.exports
Read only: true
判断是否是调试版本
Kind: static constant of module.exports
Read only: true
适配的固件 model, 来自于@link packageInfo.json 的
Kind: static constant of module.exports
Read only: true
系统入口
Kind: static method of module.exports
Param | Type | Description |
---|---|---|
RootComponent | React.Component |
入口的React Component模块 |
afterPackageEntry | function |
进入后, RootComponent 加载之前执行, 缺省为空 |
Example
import SceneMain from '...';
import App from '...';
import {Package, Entrance} from 'miot';
switch(Package.entrance){
case Entrance.Scene:
Package.entry(SceneMain, ()=>{...});
break;
default:
Package.entry(App, ()=>{...});
break;
}
强制退出插件
Kind: static method of module.exports
Param | Type | Description |
---|---|---|
info | JSON |
如果不为空, 则等同于设置 Package.exitInfo SDK_10052 新增 animated字段 eg: Package.exit({'animated': false}) 表示退出时不使用动画 目前只在ios生效,默认为true |
Example
Package.exit({...});
Example
Package.exitInfo = {...}
Package.exit();
since 10052 android only 部分插件用到的功能不会跟着米家APP一起安装,需要先安装再使用(请求安装的接口是installModule), 已经安装的模块多次调用installModule不会重复安装。 需要调用前需要安装的功能有: react-native-opencv 从10052开始引入,对应的moduleId为RnOpencv,Android平台需要先安装再使用,iOS则没这个要求
Kind: static method of module.exports
Returns: json
- 返回值:安装成功或已安装返回{code:0,data:{installed:true}},安装失败返回{code:0,data:{installed:false}}
Param | Type | Description |
---|---|---|
moduleId | string |
可选值:RnOpencv(对应为react-native-opencv) |
Example
const moduleId = 'RnOpencv';
Package.installModule(moduleId).then(res=>{
if(res && res.data && res.data.installed){
console.log(`module:${moduleId} is installed`).
}
}).catch(err=>{
console.log('installeModule error:',JSON.stringify(err));
})
RN活跃时间统计
Kind: inner property of module.exports
扩展程序调用的入口类型
Kind: inner namespace of module.exports
主入口
Kind: static constant of Entrance
场景入口
Kind: static constant of Entrance
Package事件名集合
Kind: inner namespace of module.exports
Example
import {PackageEvent} from 'miot'
const subscription = PackageEvent.packageWillPause.addListener(()=>{
...
})
...
subscription.remove()
...
-
~PackageEvent :
object
- "packageWillLoad"
- "packageDidLoaded"
- "packageWillPause"
- "packageDidResume"
- "packageAuthorizationAgreed"
- "packageAuthorizationCancel" (autoExit)
- "packageReceivedInformation"
- "packageWillExit"
- "packageViewWillAppear"
- "packageReceivedOutAppInformation"
- "packageViewWillDisappearIOS"
- "packageWillStopAndroid"
插件将要加载
Kind: event emitted by PackageEvent
插件加载完成事件
Kind: event emitted by PackageEvent
插件将暂时退出前台事件
Kind: event emitted by PackageEvent
插件将重回前台事件
Kind: event emitted by PackageEvent
SDK弹出的隐私同意时的回调
Kind: event emitted by PackageEvent
Since: 10037
用户撤销隐私授权时的回调
Kind: event emitted by PackageEvent
Param |
---|
autoExit |
插件接收到场景等通知消息
Kind: event emitted by PackageEvent
插件将退出事件
Kind: event emitted by PackageEvent
从 Native 界面返回到插件,可以通过监听此事件更新已加载过的视图,或进行相应的事件处理。
Kind: event emitted by PackageEvent
插件收到外部APP跳转带过来的信息
Kind: event emitted by PackageEvent
Since: 10053
从插件页面离开到 Native 界面, iOS Only
Kind: event emitted by PackageEvent
Since: 10038
插件进入后台(Android only) 在插件内,用户按下home键,米家进入后台会发送该通知
Kind: event emitted by PackageEvent
Since: 10048
JS端通知Native端的事件类型
Kind: inner enum of module.exports
Properties
Name | Type | Default | Description |
---|---|---|---|
NAVIGATION_STATE_CHANGE | number |
1 |
插件路由发生变化 |
entryInfo={entrance:scene|main,info:{json}}
Kind: inner constant of module.exports
在插件端发生某些事件,通知native端
Kind: inner method of module.exports
Param | Type | Description |
---|---|---|
type | number |
事件类型 |
data | object |
传入native的数据 |