App对象

Cola Shell内置一个App对象,通过该对象可以完成一些跟App相关的操作。App中包含的方法有以下一些...

prop(key, value)

基本参数设定,具体请参考 基本参数设定

channel(config) 和 router(config)

配置频道和卡片,具体请参考 频道和卡片

open(path, config)

打开一个新的链接,此方法的基本用法与标准的window.open()有点像。 但是当我们要打开一个应用内的链接时,如果使用window.open()是会导致整个页面刷新的,而利用App.open()是不会导致整体刷新的,即实现的效果是应用内部的频道或卡片切换。

这里的config参数是一个可选参数,可以用于定义一些额外的选项,config通常是一个JSON对象,其中可以包含下列的子属性:

  • replace - 是否在浏览器的history中替换当前的路径,这样当用户点击浏览的回退按钮时浏览器将不会回退到当前的页面,而是回退到上一个页面。
  • argument - 传入到要打开的频道或卡片中的额外参数,注意此特性只对那些App内部的URL有效。 此参数可以在卡片页面中通过App.getArgument()方法来获得。
  • callback - 当开发的卡片被关闭是触发的回调方法。 该方法可以接收一个传入参数,是卡片页面向其父页面传回的返回值,该返回值应当在卡片页面中通过App.setReturnValue()方法来设置。
  • target - 相当于window.open()方法中的target参数。 如果target的值不是_self,那么此方法的执行效果将与window.open()完全一样,其他参数都将失效。

getArgument(model)

获得父页面传入的参数,调用此方法时须传入当前当前卡片页面的model对象。

setReturnValue(model, value)

设置当前卡片的返回值,调用此方法时须传入当前当前卡片页面的model对象。

goLogin()

显示登录页。

此方法可以传入两种参数,它们的顺序不重要,Cola Shell会自动根据参数的类型来判断他们的作用。

  • 如果参数为String类型,这表示登录成功之后将要自动打开的URL。如果不定义此参数则会再回到当前的页面。
  • 如果参数类型为Function,这表示登录成功之后的回调方法。

setTitle(model, title)

设置当前卡片的标题。

boardcastMessage(message)

广播消息。

此处的message参数应该是一个JSON对象,其中包含两个子属性:

  • type - 消息类型,可以任意定义。
  • data - 消息的附带信息,可以任意定义。

假设我们调用下面的代码来广播一段消息... App.boardcastMessage({ type: "helloMessage", data: "Hey you guys." });

我们可以在任何一个卡片的代码中利用下面的代码收听到这个消息... $(window).on("helloMessage", function(data) { console.log(data); // 将打印Hey you guys. });