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:

interval:

  • 类型:数字
  • 描述:(可选项)轮播图片轮换时间间隔,单位是秒(s),默认值为3

rect:

  • 类型:JSON 对象
  • 描述:(可选项)轮播图的位置及尺寸
  • 内部字段:
  1. {
  2. x: 0, //(可选项)数字类型;轮播图左上角的 x 坐标;默认为 0
  3. y: 0, //(可选项)数字类型;轮播图左上角的 y 坐标;默认为 0
  4. w: 320, //(可选项)数字类型;轮播图宽度;如果不指定,默认扩展全屏幕
  5. h: 200 //(可选项)数字类型;轮播图高度;如果不指定,默认扩展全屏幕
  6. }

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. result:'ok' //描述执行结果,ok表示执行成功
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg:'' //错误信息描述
  3. }

示例代码

  1. var multiScreen = api.require('multiScreen');
  2. multiScreen.open(
  3. {
  4. url: "widget://html/multiScreenTest.html",
  5. photoUrls: [
  6. "widget://image/a.png",
  7. "http://pic.58pic.com/58pic/15/39/85/74C58PICgy4_1024.jpg"
  8. ],
  9. interval: 3,
  10. rect: { x: 300, y: 130 }
  11. },
  12. function(ret,err)
  13. {
  14. if(err) alert(err.msg);
  15. });

可用性

Android系统

可提供的1.0.0及更高版本

show

在指定的显示器的上显示内容

show({params}, callback(ret, err))

params

screenIndex:

  • 类型: 数字类型
  • 描述: 屏幕序号,主屏幕序号为0,其他屏幕序号依次递增。 双屏机器的副屏序号一般为1。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. result:'ok' //描述执行结果,ok表示执行成功
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg:'' //错误信息描述
  3. }

示例代码

  1. var multiScreen = api.require('multiScreen');
  2. multiScreen.show({ screenIndex: 1 } , function(ret,err)
  3. {
  4. if(err) alert(err.msg);
  5. });

可用性

Android系统

可提供的1.0.0及更高版本

hide

隐藏指定显示器上显示的页面

hide({params}, callback(ret, err))

params

screenIndex:

  • 类型: 数字类型
  • 描述: 屏幕序号,主屏幕序号为0,其他屏幕序号依次递增。 双屏机器的副屏序号一般为1。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. result:'ok' //描述执行结果,ok表示执行成功
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg:'' //错误信息描述
  3. }

示例代码

  1. var multiScreen = api.require('multiScreen');
  2. multiScreen.hide({ screenIndex: 1 } , function(ret,err)
  3. {
  4. if(err) alert(err.msg);
  5. });

可用性

Android系统

可提供的1.0.0及更高版本

getScreenList

获取当前设备所有显示器的信息列表,返回的数组项的序号即为显示器序号。

getScreenList(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON数组,其中每一个JSON对象对应一个显示器信息
  • 内部字段:
  1. [
  2. {
  3. name: //显示器名称
  4. width //横向分辨率
  5. height //纵向分辨率
  6. }
  7. ]

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg:'' //错误信息描述
  3. }

示例代码

  1. var multiScreen = api.require('multiScreen');
  2. multiScreen.getScreenList(function (ret, err) {
  3. if(err)
  4. alert(JSON.stringify(err));
  5. else
  6. alert(JSON.stringify(ret));
  7. });

可用性

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函数的返回值
  • 内部字段:
  1. {
  2. result:'' //执行js函数的返回值,如果为'null',通常是表示调用的js函数没有返回值
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg:'' //错误信息描述
  3. }

示例代码

  1. var multiScreen = api.require('multiScreen');
  2. multiScreen.invokeJsFunc(
  3. {
  4. name: "getValue",
  5. param:
  6. {
  7. myvalue: 136,
  8. text: "Jack"
  9. }
  10. } , function(ret , err)
  11. {
  12. if(err) alert(err.msg);
  13. else if(ret && ret.result != "null")
  14. {
  15. alert("value is " + ret.result );
  16. }
  17. });

要调用的的显示器上html页面里的js函数

  1. function getValue(param) {
  2. return param.myvalue + param.text;
  3. }

可用性

Android 4.4及更高版本系统

可提供的1.0.0及更高版本