uts-uni-api.md 4.2 KB
Newer Older
D
DCloud_LXH 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
# UTS中使用uni api  
> 需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中的完整调用。

## 示例  
```ts
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);
		}
	});
}
```


## 注意事项  
### 异步API中complete回调函数中的参数是any类型  
在uts中,由于不支持联合类型,complete回调函数的参数会当做any类型处理。  
any类型对象不能直接使用“.”访问其属性,目前暂时可以使用JSON.stringify()转换为字符串处理,或者在success和fail回调中分别处理成功和失败的数据。  
此问题仅在complete回调函数中存在,success和fail回调函数中可以使用“.”访问参数的属性。  
如下示例:
```ts
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回调函数中使用“.”访问属性,如下示例:  
```ts
	uni.request({
		url: 'https://www.invalidserviceaddress.com/',
		complete: (res) => {
			console.log(res.errCode);
		}
	});

```
编译时会报错:  
```
error: Unresolved reference: errCode‌
```



## 支持的API列表  
### 网络  
- [uni.request(OBJECT)](https://uniapp.dcloud.net.cn/api/request/request.html#request)  
	传输数据暂不支持ArrayBuffer类型  

### 数据缓存  
- [uni.setStorage(OBJECT)](https://uniapp.dcloud.net.cn/api/storage/storage.html#setstorage)  
- [uni.setStorageSync(KEY,DATA)](https://uniapp.dcloud.net.cn/api/storage/storage.html#setstoragesync)  
- [uni.getStorage(OBJECT)](https://uniapp.dcloud.net.cn/api/storage/storage.html#getstorage)  
- [uni.getStorageSync(KEY)](https://uniapp.dcloud.net.cn/api/storage/storage.html#getstoragesync)  
- [uni.getStorageInfo(OBJECT)](https://uniapp.dcloud.net.cn/api/storage/storage.html#getstorageinfo)  
- [uni.getStorageInfoSync()](https://uniapp.dcloud.net.cn/api/storage/storage.html#getstorageinfosync)  
- [uni.removeStorage(OBJECT)](https://uniapp.dcloud.net.cn/api/storage/storage.html#removestorage)  
- [uni.removeStorageSync(KEY)](https://uniapp.dcloud.net.cn/api/storage/storage.html#removestoragesync)  
- [uni.clearStorage()](https://uniapp.dcloud.net.cn/api/storage/storage.html#clearstorage)
- [uni.clearStorageSync()](https://uniapp.dcloud.net.cn/api/storage/storage.html#clearstoragesync)  

### 设备  
- 系统  
	+ [uni.getAppBaseInfo()](https://uniapp.dcloud.net.cn/api/system/getAppBaseInfo.html)  
	+ [uni.getDeviceInfo()](https://uniapp.dcloud.net.cn/api/system/getDeviceInfo.html)  
	+ [uni.getSystemSetting()](https://uniapp.dcloud.net.cn/api/system/getsystemsetting.html)

### 界面  
- 交互反馈  
	+ [uni.showToast(OBJECT)](https://uniapp.dcloud.net.cn/api/ui/prompt.html#showtoast)  
	+ [uni.hideToast()](https://uniapp.dcloud.net.cn/api/ui/prompt.html#hidetoast)  
	+ [uni.showLoading(OBJECT)](https://uniapp.dcloud.net.cn/api/ui/prompt.html#showloading)  
	+ [uni.hideLoading()](https://uniapp.dcloud.net.cn/api/ui/prompt.html#hideloading)  
	+ [uni.showModal(OBJECT)](https://uniapp.dcloud.net.cn/api/ui/prompt.html#showmodal)  
	+ [uni.showActionSheet(OBJECT)](https://uniapp.dcloud.net.cn/api/ui/prompt.html#showactionsheet)  

**目前仅支持以上列出的部分uni api的调用,[uni ext api](https://uniapp.dcloud.net.cn/api/extapi.html)实现的api(如[uni.getBatteryInfo](https://ext.dcloud.net.cn/plugin?id=9295))暂时还不支持在uts插件中调用**