Module: miot/Host

扩展程序运行时的宿主环境 所有由宿主APP直接提供给扩展程序的接口均列在这里. 主要包括原生业务页面, 本地数据访问等

Example
import {Host} from 'miot'

 Host.type // ios/ android/ tv
 Host.isIOS
 Host.isAndroid

 Host.version
 Host.apiLevel
 Host.isDebug


 Host.ui.openDeviceListPage()
 Host.ui.openShopPage(100)

 Host.locale.language
 Host.locale.timezone
 Host.locale.currentTimeMillis.then(time=>{})
 Host.locale.getCurrentCountry().then(country=>{})
 Host.locale.getPlaceMark().then(place=>{})
 Host.locale.getGPS().then(gps=>{})


 Host.file.readFile(path).then(file=>{})
 Host.file.writeFile(path, file).then(ok=>{})

 Host.storage.get(key)
 Host.storage.set(key, value)

Members

(static, constant) apiLevel :int

APP 的 apiLevel

(static, constant) appConfigEnv :int

获取 米家APP中 我的-->开发者设置-->其他设置, AppConfig接口拉取preview版数据 是否选中的状态 1:表示选中, preview ; 0:表示未选中, release 如果选中,Service.smarthome.getAppConfig 获取的数据为preview版数据, 反之为release版数据

Since:
  • 10024

(static, constant) applicationEdition :int

是否是国际版APP 国内版1 国际版2 欧洲版3

(static, constant) audio

音频 播放,录制,转码相关模块

See:

(static, constant) crypto

加密解密模块

See:

(static, constant) file

本地文件服务模块

See:

(static, constant) isAndroid :boolean

判断是否是 android

(static, constant) isDebug :boolean

判断是否是调试版本

(static, constant) isIOS :boolean

判断是否 iOS,和上面那个方法二选一即可

(static, constant) locale

host 的本地化设置, 包括语言,地区,城市等等

See:

(static, constant) storage

本地数据存储服务模块

See:

(static, constant) systemInfo :object

系统信息 包含sysVersion 系统版本名称 mobileModel 手机型号

(static, constant) type :string

返回本地环境的类型, ios|android

(static, constant) ui

可调起的host业务页面

See:

(static, constant) version :string

APP 的版本, 例如"1.0.0"

Methods

(static) createBackgroundExecutor(jx, initialProps) → {Promise.<IExecutor>}

后台执行文件, 后台最多同时运行三个线程, 超过将销毁最早创建的 executor

Parameters:
Name Type Description
jx *

可执行的纯 js 文件, 不使用任何高级语法, 如要使用 es6, 请自行编译通过.

initialProps json

用于脚本初始化的数据, 在jx文件中为 'initialProps' 对象,使用方法参考样例 或者sampleProject中 ‘com.xiaomi.demo/Main/tutorial/JSExecutor.js’

Since:
  • 10002
Returns:
Type
Promise.<IExecutor>
Example
var myexecutor = null;
Host.createBackgroundExecutor(require('./test.jx'), {name1:"testName"})
     .then(executor=>{
         myexecutor = executor;
         executor.execute("myFunc", 1,2,'a')
                 .then(result=>{
                     console.log(result);
                 })
         //支持使用initialProps或者在jx中直接使用
         executor.execute("myFunc2", "initialProps.name1").then(res =>{...})
         //支持使用obj与arr
         executor.execute("SomeObject.myFunc3", {"name":"hello"}, ["a1","a2"]).then(res =>{...})
})
.then(err=>{...})
....
myexecutor&&myexecutor.remove();

(static) getAppName()

获取APP名称

(static) getCurrentCountry()

获取当前登陆用户的服务器国家

Since:
  • 10010
Deprecated:
  • 10011 改用 Service.getServerName

(static) getOperatorsInfo() → {Promise}

获取手机运营商信息 返回值中: name 运营商名称-与手机语言一致 simOperator 运营商 国家编码(三位)+网络编码 参考 https://en.wikipedia.org/wiki/Mobile_country_code countryCode 运营商国家码,ISO 3166-1 country code

Since:
  • 10021
Returns:

运营商信息 {'1':{name:'',simOperator:'',,countryCode:''},'2':{...}}

Type
Promise

(static) getPhoneScreenInfo() → {Promise}

获取Android手机屏幕相关信息(包括状态栏高度)

Since:
  • 10012
Returns:

手机屏幕相关信息 {'viewWidth':xxx, 'viewHeight':xxx}

Type
Promise

(static) getWifiInfo() → {Promise}

获取手机wifi信息

Returns:
Type
Promise
Example
Host.getWifiInfo().then(res => console("ssid and bssid = ", res.SSID, res.BSSID))

(static) pageShouldAdapterSoftKeyboard(shouldAdapter) → {Promise}

页面有输入框,需要打开软键盘,页面适配软键盘

Parameters:
Name Type Description
shouldAdapter boolean

true: 表示进行适配,建议UI用ScrollView包裹起来,当输入框在屏幕的下半部分时,只会触发ScrollView滚动; false: 整个页面滚动, demo可参考SoftKeyboardAdapterTestDemo.js

Since:
  • 10027
Returns:
Type
Promise

(static) phoneHasNfcForAndroid() → {Promise}

android 手机是否有NFC功能

Since:
  • 10021
Returns:
Type
Promise
Example
Host.phoneHasNfcForAndroid().then(res => console(res))

Type Definitions

IExecutor

jx执行器

Properties:
Name Type Description
isReady boolean

是否可用

isRunning boolean

是否运行中

execute(method, *

...args) - 执行某个函数

remove()

删除

Since:
  • 10002