English
需HBuilderX 3.8.0 及以上版本
uts中经常要调用iOS和Android的api。uni对常用api进行了封装。在uni的api覆盖范围内,开发者可以简单的只调用uni的api实现对iOS、Android的能力调用。
目前uts插件代码中可以直接调用部分uni api,如uni.request
、uni.showModel
。未来会陆续实现所有uni api在uts中的完整调用。
export function myToast() {
uni.showToast({
title: 'This is toast in uts with uni API!',
success: function(){
console.log('uni.showToast success!');
},
fail: (err) => {
console.log('uni.showToast success: ', err);
}
});
}
在uts中,由于不支持联合类型,complete回调函数的参数会当做any类型处理。
any类型对象不能直接使用“.”访问其属性,目前暂时可以使用JSON.stringify()转换为字符串处理,或者在success和fail回调中分别处理成功和失败的数据。
此问题仅在complete回调函数中存在,success和fail回调函数中可以使用“.”访问参数的属性。
如下示例:
export function myTest() {
uni.request({
url: 'https://www.invalidserviceaddress.com/',
success: (ret) => {
//ret为RequestSuccess类型,可以使用.访问其属性
let data = ret.data;
console.log('uni.request successed: ', data);
},
fail: (err) => {
//err为RequestFail类型,可以使用.访问其属性
let code = err.errCode;
console.log('uni.request failed: ', code);
},
complete: (res) => {
//res为any类型,转换为字符串处理
let ret = JSON.stringify(res);
console.log(ret);
}
});
}
如果在complete回调函数中使用“.”访问属性,如下示例:
uni.request({
url: 'https://www.invalidserviceaddress.com/',
complete: (res) => {
console.log(res.errCode);
}
});
编译时会报错:
error: Unresolved reference: errCode
目前仅支持以上列出的部分uni api的调用,uni ext api实现的api(如uni.getBatteryInfo)暂时还不支持在uts插件中调用