multiScreen
来自于:开发者立即使用
open show hide getScreenList invokeJsFunc
概述
multiScreen 模块提供了多屏异显支持,可以在指定的屏幕上显示HTML和轮播图片,支持运行时调用HTML页面内的JS函数,动态改变显示内容。
multiScreen 模块适用于餐厅多屏收银机、超市收款机的副屏展示,以及其它的需要在外接显示器上显示指定内容的场景。
- 如果只需要在副屏上显示轮播图片,只需要调用 open 函数,传入一组图片地址(本地或服务器均可),即可实现在副屏上展示轮播效果。
- 如果要实现复杂的逻辑,比如:在客户点餐时,要动态显示客户已点菜肴信息及总价,可以使用 html 页面。 在 open 函数中传入该 html 页面的 url(本地或服务器均可),并通过 invokeJsFunc 调用 html 页面中的 JS 函数,动态更新显示内容。
- 也可以组合轮播图片和 html 页面,通过 open 函数中的 rect 参数指定轮播图片的显示区域,用 html 页面展示订单信息,用轮播图片展示促销活动图片,达到更好的显示效果。
另外,模块内部会对服务器上的轮播图片做缓存处理,不需要调用者再进行图片缓存操作。
open
打开模块,在指定的显示器上显示网页和轮播图片
open({params} , callback(ret, err))
params
screenIndex:
- 类型: 数字类型
- 描述:(可选项)屏幕序号,默认值为-1,表示最后一个屏幕,即双屏机器的副屏。
- 说明: 主屏幕序号为0,其他屏幕序号依次递增。可以调用 getScreenList 获得屏幕信息,数组序号即为屏幕序号。
url:
- 类型: 字符串类型
- 描述:(可选项)要在指定屏幕上显示的html页面的url,支持http://,https://,widget://协议
- 说明: 该值为空则不显示html页面,只显示轮播图。
photoUrls:
- 类型: JS数组
- 描述:(可选项)图片路径数组,支持http://,https://,widget://,fs://协议
- 说明: 该值为空必须设定要展示的html页面url
interval:
- 类型:数字
- 描述:(可选项)轮播图片轮换时间间隔,单位是秒(s),默认值为3
rect:
- 类型:JSON 对象
- 描述:(可选项)轮播图的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;轮播图左上角的 x 坐标;默认为 0
y: 0, //(可选项)数字类型;轮播图左上角的 y 坐标;默认为 0
w: 320, //(可选项)数字类型;轮播图宽度;如果不指定,默认扩展全屏幕
h: 200 //(可选项)数字类型;轮播图高度;如果不指定,默认扩展全屏幕
}
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
result:'ok' //描述执行结果,ok表示执行成功
}
err:
- 类型:JSON对象
- 内部字段:
{
msg:'' //错误信息描述
}
示例代码
var multiScreen = api.require('multiScreen');
multiScreen.open(
{
url: "widget://html/multiScreenTest.html",
photoUrls: [
"widget://image/a.png",
"http://pic.58pic.com/58pic/15/39/85/74C58PICgy4_1024.jpg"
],
interval: 3,
rect: { x: 300, y: 130 }
},
function(ret,err)
{
if(err) alert(err.msg);
});
可用性
Android系统
可提供的1.0.0及更高版本
show
在指定的显示器的上显示内容
show({params}, callback(ret, err))
params
screenIndex:
- 类型: 数字类型
- 描述: 屏幕序号,主屏幕序号为0,其他屏幕序号依次递增。 双屏机器的副屏序号一般为1。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
result:'ok' //描述执行结果,ok表示执行成功
}
err:
- 类型:JSON对象
- 内部字段:
{
msg:'' //错误信息描述
}
示例代码
var multiScreen = api.require('multiScreen');
multiScreen.show({ screenIndex: 1 } , function(ret,err)
{
if(err) alert(err.msg);
});
可用性
Android系统
可提供的1.0.0及更高版本
hide
隐藏指定显示器上显示的页面
hide({params}, callback(ret, err))
params
screenIndex:
- 类型: 数字类型
- 描述: 屏幕序号,主屏幕序号为0,其他屏幕序号依次递增。 双屏机器的副屏序号一般为1。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
result:'ok' //描述执行结果,ok表示执行成功
}
err:
- 类型:JSON对象
- 内部字段:
{
msg:'' //错误信息描述
}
示例代码
var multiScreen = api.require('multiScreen');
multiScreen.hide({ screenIndex: 1 } , function(ret,err)
{
if(err) alert(err.msg);
});
可用性
Android系统
可提供的1.0.0及更高版本
getScreenList
获取当前设备所有显示器的信息列表,返回的数组项的序号即为显示器序号。
getScreenList(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON数组,其中每一个JSON对象对应一个显示器信息
- 内部字段:
[
{
name: //显示器名称
width: //横向分辨率
height: //纵向分辨率
}
]
err:
- 类型:JSON对象
- 内部字段:
{
msg:'' //错误信息描述
}
示例代码
var multiScreen = api.require('multiScreen');
multiScreen.getScreenList(function (ret, err) {
if(err)
alert(JSON.stringify(err));
else
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
invokeJsFunc
调用指定显示器上显示的HTML中的js函数
invokeJsFunc({params}, callback(ret, err))
params
screenIndex:
- 类型: 数字类型
- 描述:(可选项)屏幕序号,默认值为-1,表示最后一个屏幕,即双屏机器的副屏。
- 说明: 主屏幕序号为0,其他屏幕序号依次递增。可以调用 getScreenList 获得屏幕信息,数组序号即为屏幕序号。
name:
- 类型: 字符串类型
- 描述: 要调用的 js 函数名字
param:
- 类型: JSON对象
- 描述:(可选项)传递给要调用的 js 函数的参数
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:js函数的返回值
- 内部字段:
{
result:'' //执行js函数的返回值,如果为'null',通常是表示调用的js函数没有返回值
}
err:
- 类型:JSON对象
- 内部字段:
{
msg:'' //错误信息描述
}
示例代码
var multiScreen = api.require('multiScreen');
multiScreen.invokeJsFunc(
{
name: "getValue",
param:
{
myvalue: 136,
text: "Jack"
}
} , function(ret , err)
{
if(err) alert(err.msg);
else if(ret && ret.result != "null")
{
alert("value is " + ret.result );
}
});
要调用的的显示器上html页面里的js函数
function getValue(param) {
return param.myvalue + param.text;
}
可用性
Android 4.4及更高版本系统
可提供的1.0.0及更高版本