文档开发者中心
我的

<如何开发快应用 5>API 基础

1 应用上下文
1.1 接口声明
       无需声明。
1.2 导入模块
import app from '@system.app' 或 var app = require("@system.app")

1.3 app.getInfo()
       获取当前应用信息。
参数
       无。
返回值
参数名类型说明
nameString应用名称。
versionNameString应用版本名称。
versionCodeNumber应用版本号。
logLevelStringlog级别。
sourceObject应用来源。

       表1-1 source 说明

参数名类型说明
packageNameString来源 app 的包名,一级来源。
typeString来源类型,二级来源,值为 shortcut、push、url、barcode、nfc、bluetooth、other。
extraObject来源其他信息,与 type 相关,不同的 type,extra 中的字段会不同。

       extra的相关说明如下:
       ● type=shortcut

- scene:三级来源,表示快捷方式创建的场景,值为 dialog(平台内部策略Dialog弹窗创建)、api(API接口调用创建)、web(H5站接入流量切换,浏览时创建)、other
- original:原始来源 source,表示快捷方式创建时的来源

示例
console.log(JSON.stringify(app.getInfo()))

2 日志打印
2.1 接口声明
       无需声明。
2.2 导入模块
       无需导入。
2.3 console.debug/log/info/warn/error(message)
       打印一段文本。
参数
参数类型必填说明
messageString是要打印的文本,也可以是格式化文本,规则与浏览器的console相同

示例
for (var i=0; i<5; i++) {
  console.log("Hello, %s. You've called me %d times.", "Bob", i+1);
}
console.log("I want to print a number: %d", 123456);


3 页面路由
3.1 接口声明
       无需声明。
3.2 导入模块
import router from '@system.router' 或 var router = require("@system.router")

3.3 router.push(OBJECT)
       跳转到应用内的某个页面。
参数
参数类型必填说明
uriString是要跳转到的uri,可以是下面的格式:
1. 包含schema的完整uri;目前支持的schema有tel,sms和mailto,例如tel:10086,mailto:abc@gmail.com
2. 以"/"开头的应用内页面的路径;例:/about
3. 以非"/"开头的应用内页面的名称;例:About
4. 特殊的,如果uri的值是"/",则跳转到path为"/"的页,没有则跳转到首页。

支持包含schema的完整uri。对于带有schema的uri,处理流程如下:
1. 查找app下所有page的filter设置来选择合适的page处理请求(参见
manifest文件)
2. 如果没有合适的page能够处理请求,会使用默认策略来处理请求。目前默认策略支持对http、https、internal这几种schema的处理
3. 如果默认策略也不能处理请求,会尝试使用系统中的应用来处理请求
4. 如果没有系统应用可以处理请求,会抛弃请求

默认策略的处理逻辑:
1. 如果schema是http/https,会用内置的web页面打开网页
2. 如果schema是internal(参见“
文件组织”),会根据uri的文件扩展名来确定文件类型,再调用系统中的应用打开文件
paramsObject否跳转时需要传递的数据,参数可以在页面中通过this.param1的方式使用,param1为json中的参数名,param1对应的值会统一转换为String类型。

示例
// launch phone app
router.push({
  uri: 'tel:10086'
});
// open page by path
router.push({
  uri: '/about'
  params: {testId:'1'}
});
// open page by name
router.push({
  uri: 'About'
  params: {testId:'1'}
});


       新增下面的用法:
// open web page
router.push({
  uri: 'http://www.example.com'
});
// install apk
router.push({
  uri: 'internal://cache/example.apk'
});


3.4 router.replace(OBJECT)
       跳转到应用内的某个页面,当前页面无法返回。
参数
参数类型必填说明
uriString是要跳转到的uri,可以是下面的格式:
1. 以"/"开头的应用内页面的路径;例:/about
2. 以非"/"开头的应用内页面的名称;例:About
3. 特殊的,如果uri的值是"/",则跳转到path为"/"的页,没有则跳转到首页。
paramsObject否跳转时需要传递的数据,参数可以在页面中通过this.param1的方式使用,param1为json中的参数名,param1对应的值会统一转换为String类型。

示例
router.replace({
  uri: '/test'
  params: {testId:'1'}
})


3.5 router.back()
       返回上一页面。
参数
       无。
示例
// A页面
router.push({
  uri: 'B'
})

// B页面
router.push({
  uri: 'C'
})

// C页面通过back,将返回B页面
router.back();
// B页面通过back,将返回A页面
router.back();


3.6 router.clear()
       清空所有历史页面记录,仅保留当前页面,即保留栈顶页面。
参数
       无。
示例
router.clear()

3.7 router.getLength()
       获取当前页面栈的页面数量。
参数
       无。
返回值
类型说明
String页面数量

示例
var length= router.getLength(){
console.log("pages' length = "length);


3.8 router.getState()
       获取当前页面状态。
参数
       无。
返回值
参数类型说明
indexNumber当前页面在页面栈中的位置
nameString当前页面的名称
pathString当前页面的路径

示例
var page = router.getState()
console.log("page index = "+page.index);
console.log("page name = "+page.name);
console.log("page path = "+page.path);


点赞
收藏
回复
分享
举报
浏览1199 发布于2018-05-03 02:28未知归属地
全部评论
最多点赞
最新发布
最早发布
暂无评论
暂无评论
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。