multiScreen

来自于:开发者立即使用

概述

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 对象
  • 描述:(可选项)轮播图的位置及尺寸
  • 内部字段:
    {
        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及更高版本