Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-api
提交
f9df85a0
U
uni-api
项目概览
DCloud
/
uni-api
通知
669
Star
23
Fork
12
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
3
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-api
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
3
Issue
3
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
f9df85a0
编写于
7月 12, 2024
作者:
DCloud-yyl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
同步代码@HBuilderX4.23
上级
c485ce15
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
127 addition
and
77 deletion
+127
-77
uni_modules/uni-fileSystemManager/utssdk/interface.uts
uni_modules/uni-fileSystemManager/utssdk/interface.uts
+2
-2
uni_modules/uni-getDeviceInfo/utssdk/app-android/index.uts
uni_modules/uni-getDeviceInfo/utssdk/app-android/index.uts
+1
-1
uni_modules/uni-getDeviceInfo/utssdk/app-ios/device/DeviceUtil.uts
...es/uni-getDeviceInfo/utssdk/app-ios/device/DeviceUtil.uts
+0
-9
uni_modules/uni-getDeviceInfo/utssdk/app-ios/index.uts
uni_modules/uni-getDeviceInfo/utssdk/app-ios/index.uts
+1
-1
uni_modules/uni-getDeviceInfo/utssdk/interface.uts
uni_modules/uni-getDeviceInfo/utssdk/interface.uts
+3
-3
uni_modules/uni-network/utssdk/app-ios/network/NetworkManager.uts
...les/uni-network/utssdk/app-ios/network/NetworkManager.uts
+82
-59
uni_modules/uni-network/utssdk/app-ios/network/download/DownloadController.uts
...rk/utssdk/app-ios/network/download/DownloadController.uts
+2
-0
uni_modules/uni-network/utssdk/app-ios/network/upload/UploadController.uts
...etwork/utssdk/app-ios/network/upload/UploadController.uts
+7
-0
uni_modules/uni-payment-wxpay/utssdk/interface.uts
uni_modules/uni-payment-wxpay/utssdk/interface.uts
+0
-0
uni_modules/uni-tabBar/utssdk/app-android/index.uts
uni_modules/uni-tabBar/utssdk/app-android/index.uts
+5
-1
uni_modules/uni-tabBar/utssdk/interface.uts
uni_modules/uni-tabBar/utssdk/interface.uts
+24
-1
未找到文件。
uni_modules/uni-fileSystemManager/utssdk/interface.uts
浏览文件 @
f9df85a0
...
@@ -269,7 +269,7 @@ export type ReadDirOptions = {
...
@@ -269,7 +269,7 @@ export type ReadDirOptions = {
export type AccessOptions = {
export type AccessOptions = {
/**
/**
* 要
删除的
目录路径 (本地路径)
* 要
判断是否存在的文件/
目录路径 (本地路径)
*/
*/
path : string.URIString,
path : string.URIString,
...
@@ -1104,7 +1104,7 @@ export interface FileSystemManager {
...
@@ -1104,7 +1104,7 @@ export interface FileSystemManager {
access(options : AccessOptions) : void;
access(options : AccessOptions) : void;
/**
/**
* FileSystemManager.access 的同步版本
* FileSystemManager.access 的同步版本
* @param path 要
删除的
目录路径 (本地路径)
* @param path 要
判断是否存在的文件/
目录路径 (本地路径)
* @uniPlatform {
* @uniPlatform {
* "app": {
* "app": {
* "android": {
* "android": {
...
...
uni_modules/uni-getDeviceInfo/utssdk/app-android/index.uts
浏览文件 @
f9df85a0
...
@@ -63,7 +63,7 @@ function getBaseInfo(filterArray : Array<string>) : GetDeviceInfoResult {
...
@@ -63,7 +63,7 @@ function getBaseInfo(filterArray : Array<string>) : GetDeviceInfoResult {
result.deviceId = DeviceUtil.getDeviceID(activity);
result.deviceId = DeviceUtil.getDeviceID(activity);
}
}
if (filterArray.indexOf("devicePixelRatio") != -1) {
if (filterArray.indexOf("devicePixelRatio") != -1) {
result.devicePixelRatio = DeviceUtil.getScaledDensity(activity)
+ ""
;
result.devicePixelRatio = DeviceUtil.getScaledDensity(activity);
}
}
if (filterArray.indexOf("system") != -1) {
if (filterArray.indexOf("system") != -1) {
result.system = "Android " + Build.VERSION.RELEASE;
result.system = "Android " + Build.VERSION.RELEASE;
...
...
uni_modules/uni-getDeviceInfo/utssdk/app-ios/device/DeviceUtil.uts
浏览文件 @
f9df85a0
...
@@ -28,15 +28,6 @@ export class DeviceUtil {
...
@@ -28,15 +28,6 @@ export class DeviceUtil {
return orientation;
return orientation;
}
}
public static getScreenScale(): string {
return UIScreen.main.scale.description;
}
public static getIdfa(): string {
return UTSiOS.getGgbs()
}
public static hasRootPrivilege(): boolean {
public static hasRootPrivilege(): boolean {
return UTSiOS.isRoot()
return UTSiOS.isRoot()
}
}
...
...
uni_modules/uni-getDeviceInfo/utssdk/app-ios/index.uts
浏览文件 @
f9df85a0
...
@@ -64,7 +64,7 @@ function getBaseInfo(filterArray : Array<string>) : GetDeviceInfoResult {
...
@@ -64,7 +64,7 @@ function getBaseInfo(filterArray : Array<string>) : GetDeviceInfoResult {
result.deviceOrientation = DeviceUtil.getOrientation();
result.deviceOrientation = DeviceUtil.getOrientation();
}
}
if (filterArray.indexOf("devicePixelRatio") != -1) {
if (filterArray.indexOf("devicePixelRatio") != -1) {
result.devicePixelRatio =
DeviceUtil.getScreenScale(
);
result.devicePixelRatio =
Number.from(UIScreen.main.scale
);
}
}
if (filterArray.indexOf("system") != -1) {
if (filterArray.indexOf("system") != -1) {
result.system = String(format = "iOS %@", osVersion);
result.system = String(format = "iOS %@", osVersion);
...
...
uni_modules/uni-getDeviceInfo/utssdk/interface.uts
浏览文件 @
f9df85a0
...
@@ -151,7 +151,7 @@ export type GetDeviceInfoOptions = {
...
@@ -151,7 +151,7 @@ export type GetDeviceInfoOptions = {
* }
* }
* }
* }
*/
*/
deviceType?:
string
,
deviceType?:
'phone' | 'pad' | 'tv' | 'watch' | 'pc' | 'undefined' | 'car' | 'vr' | 'appliance'
,
/**
/**
* 设备方向 竖屏 portrait、横屏 landscape
* 设备方向 竖屏 portrait、横屏 landscape
*
*
...
@@ -199,7 +199,7 @@ export type GetDeviceInfoOptions = {
...
@@ -199,7 +199,7 @@ export type GetDeviceInfoOptions = {
* }
* }
* }
* }
*/
*/
devicePixelRatio?:
string
,
devicePixelRatio?:
number
,
/**
/**
* 操作系统及版本
* 操作系统及版本
*
*
...
@@ -247,7 +247,7 @@ export type GetDeviceInfoOptions = {
...
@@ -247,7 +247,7 @@ export type GetDeviceInfoOptions = {
* }
* }
* }
* }
*/
*/
platform?:
string
,
platform?:
'ios' | 'android' | 'mac' | 'windows' | 'linux'
,
/**
/**
* 是否root。iOS 为是否越狱
* 是否root。iOS 为是否越狱
*
*
...
...
uni_modules/uni-network/utssdk/app-ios/network/NetworkManager.uts
浏览文件 @
f9df85a0
import { RequestOptions, RequestTask, UploadTask, UploadFileOptions, OnProgressUpdateResult, UploadFileProgressUpdateCallback, OnProgressDownloadResult, DownloadTask, DownloadFileOptions, DownloadFileProgressUpdateCallback } from '../interface.uts';
import { RequestOptions, RequestTask, UploadTask, UploadFileOptions, OnProgressUpdateResult, UploadFileProgressUpdateCallback, OnProgressDownloadResult, DownloadTask, DownloadFileOptions, DownloadFileProgressUpdateCallback } from '../interface.uts';
import { UTSiOS } from "DCloudUTSFoundation";
import { UTSiOS } from "DCloudUTSFoundation";
import { URLSessionDataDelegate, URL, CharacterSet, URLSession, URLSessionConfiguration, OperationQueue, URLSessionTask, URLResponse, URLSessionDataTask, URLAuthenticationChallengeSender, URLAuthenticationChallenge, URLCredential, URLSessionTaskMetrics, Data, HTTPURLResponse, NSError, URLRequest, ComparisonResult } from 'Foundation';
import { URLSessionDataDelegate, URL, CharacterSet, URLSession, URLSessionConfiguration, OperationQueue, URLSessionTask, URLResponse, URLSessionDataTask, URLAuthenticationChallengeSender, URLAuthenticationChallenge, URLCredential, URLSessionTaskMetrics, Data, HTTPURLResponse, NSError, URLRequest, ComparisonResult } from 'Foundation';
import { UploadController } from './upload/UploadController.uts';
import { UploadController } from './upload/UploadController.uts';
import { DownloadController } from './download/DownloadController.uts';
import { DownloadController } from './download/DownloadController.uts';
class NetworkRequestListener {
class NetworkRequestListener {
public onStart() : void { }
public onStart() : void { }
...
@@ -14,21 +14,21 @@ class NetworkRequestListener {
...
@@ -14,21 +14,21 @@ class NetworkRequestListener {
public onFinished(response : HTTPURLResponse) : void { }
public onFinished(response : HTTPURLResponse) : void { }
public onFail(error : NSError) : void { }
public onFail(error : NSError) : void { }
}
}
interface NetworkUploadFileListener {
interface NetworkUploadFileListener {
progressListeners: Array<UploadFileProgressUpdateCallback>;
progressListeners
: Array<UploadFileProgressUpdateCallback>;
onProgress(progressUpdate
: OnProgressUpdateResult)
: void;
onProgress(progressUpdate
: OnProgressUpdateResult)
: void;
onDataReceived(data : Data) : void;
onDataReceived(data : Data) : void;
onFinished(response : HTTPURLResponse) : void;
onFinished(response : HTTPURLResponse) : void;
onFail(error : NSError) : void;
onFail(error : NSError) : void;
}
}
interface NetworkDownloadFileListener {
interface NetworkDownloadFileListener {
options : DownloadFileOptions | null;
options : DownloadFileOptions | null;
progressListeners: Array<DownloadFileProgressUpdateCallback>;
progressListeners
: Array<DownloadFileProgressUpdateCallback>;
onProgress(progressUpdate
: OnProgressDownloadResult)
: void;
onProgress(progressUpdate
: OnProgressDownloadResult)
: void;
onFinished(response : HTTPURLResponse, filePath
: string) : void;
onFinished(response : HTTPURLResponse, filePath
: string) : void;
onFail(error : NSError) : void;
onFail(error : NSError) : void;
}
}
...
@@ -80,19 +80,19 @@ class NetworkManager implements URLSessionDataDelegate {
...
@@ -80,19 +80,19 @@ class NetworkManager implements URLSessionDataDelegate {
}
}
let requestTask = new NetworkRequestTaskImpl(task);
let requestTask = new NetworkRequestTaskImpl(task);
return requestTask;
return requestTask;
}
}
public uploadFile(options
: UploadFileOptions, listener: NetworkUploadFileListener): UploadTask {
public uploadFile(options
: UploadFileOptions, listener : NetworkUploadFileListener) : UploadTask {
return UploadController.getInstance().uploadFile(options, listener);
return UploadController.getInstance().uploadFile(options, listener);
}
}
public downloadFile(options
: DownloadFileOptions, listener: NetworkDownloadFileListener): DownloadTask {
public downloadFile(options
: DownloadFileOptions, listener : NetworkDownloadFileListener) : DownloadTask {
return DownloadController.getInstance().downloadFile(options, listener);
return DownloadController.getInstance().downloadFile(options, listener);
}
}
public createRequest<T>(param : RequestOptions<T>) : URLRequest | null {
public createRequest<T>(param : RequestOptions<T>) : URLRequest | null {
const encodeUrl = this.percentEscapedString(param.url)
const encodeUrl = this.percentEscapedString(param.url)
let url = new URL(string = encodeUrl);
let url = new URL(string = encodeUrl);
if (url == null) {
if (url == null) {
return null
return null
...
@@ -121,17 +121,19 @@ class NetworkManager implements URLSessionDataDelegate {
...
@@ -121,17 +121,19 @@ class NetworkManager implements URLSessionDataDelegate {
let hasContentType = false;
let hasContentType = false;
if (headers != null) {
if (headers != null) {
for (entry in headers!) {
for (entry in headers!) {
let key = entry.key;
let key = entry.key;
let value = entry.value;
let value = entry.value;
if (key.caseInsensitiveCompare("Content-Type") == ComparisonResult.orderedSame) {
if (key.caseInsensitiveCompare("Content-Type") == ComparisonResult.orderedSame) {
hasContentType = true;
hasContentType = true;
}
}
let valueStr = "";
let valueStr = "";
if (value instanceof UTSJSONObject) {
if (value instanceof UTSJSONObject) {
valueStr = JSON.stringify(value) ?? ""
valueStr = JSON.stringify(value) ?? ""
}else{
} else if (value instanceof Map<string, any>) {
valueStr = `${value}`
valueStr = JSON.stringify(new UTSJSONObject(value)) ?? ""
}
} else {
valueStr = `${value}`
}
request.setValue(valueStr, forHTTPHeaderField = key);
request.setValue(valueStr, forHTTPHeaderField = key);
}
}
}
}
...
@@ -140,7 +142,7 @@ class NetworkManager implements URLSessionDataDelegate {
...
@@ -140,7 +142,7 @@ class NetworkManager implements URLSessionDataDelegate {
if ("GET" != method) {
if ("GET" != method) {
request.setValue("application/json", forHTTPHeaderField = "Content-Type");
request.setValue("application/json", forHTTPHeaderField = "Content-Type");
}
}
}
}
if ("GET" == method) {
if ("GET" == method) {
const data = param.data;
const data = param.data;
if (data != null) {
if (data != null) {
...
@@ -149,10 +151,12 @@ class NetworkManager implements URLSessionDataDelegate {
...
@@ -149,10 +151,12 @@ class NetworkManager implements URLSessionDataDelegate {
json = JSON.parseObject(data as string);
json = JSON.parseObject(data as string);
} else if (data instanceof UTSJSONObject) {
} else if (data instanceof UTSJSONObject) {
json = data as UTSJSONObject;
json = data as UTSJSONObject;
}
} else if (data instanceof Map<string, any>) {
json = new UTSJSONObject(data!)
}
if (json != null) {
if (json != null) {
let urlWithQuery = this.stringifyQuery(encodeUrl, json!)
let urlWithQuery = this.stringifyQuery(encodeUrl, json!)
let url = new URL(string = urlWithQuery);
let url = new URL(string = urlWithQuery);
request.url = url;
request.url = url;
}
}
}
}
...
@@ -160,6 +164,23 @@ class NetworkManager implements URLSessionDataDelegate {
...
@@ -160,6 +164,23 @@ class NetworkManager implements URLSessionDataDelegate {
let bodyData : Data | null = null;
let bodyData : Data | null = null;
if (typeof (param.data) == 'string') {
if (typeof (param.data) == 'string') {
bodyData = (param.data as string).data(using = String.Encoding.utf8);
bodyData = (param.data as string).data(using = String.Encoding.utf8);
} else if (param.data instanceof Map<string, any>) {
let body : string | null = "";
const contentType = request.value(forHTTPHeaderField = "Content-Type")
const data = new UTSJSONObject(param.data!);
if (contentType != null) {
if (contentType!.indexOf("application/x-www-form-urlencoded") == 0) {
const map : Map<string, any | null> = data.toMap();
const bodyArray = new Array<string>();
map.forEach((value, key) => {
bodyArray.push(key + "=" + `${value ?? "null"}`);
})
body = bodyArray.join("&");
} else {
body = JSON.stringify(data);
}
bodyData = body?.data(using = String.Encoding.utf8);
}
} else if (param.data instanceof UTSJSONObject) {
} else if (param.data instanceof UTSJSONObject) {
let body : string | null = "";
let body : string | null = "";
const contentType = request.value(forHTTPHeaderField = "Content-Type")
const contentType = request.value(forHTTPHeaderField = "Content-Type")
...
@@ -183,8 +204,8 @@ class NetworkManager implements URLSessionDataDelegate {
...
@@ -183,8 +204,8 @@ class NetworkManager implements URLSessionDataDelegate {
}
}
request.httpBody = bodyData;
request.httpBody = bodyData;
}
}
return request;
return request;
}
}
...
@@ -207,42 +228,44 @@ class NetworkManager implements URLSessionDataDelegate {
...
@@ -207,42 +228,44 @@ class NetworkManager implements URLSessionDataDelegate {
newUrl = str[0] // http:xxx/xxx
newUrl = str[0] // http:xxx/xxx
const pairs = query.split('&')
const pairs = query.split('&')
const queryMap = new Map<string, string>();
const queryMap = new Map<string, string>();
pairs.forEach((item
: string, index
: number) => {
pairs.forEach((item
: string, index
: number) => {
const temp = item.split('=')
const temp = item.split('=')
if (temp.length > 1) {
if (temp.length > 1) {
queryMap[temp[0]] = temp[1]
queryMap[temp[0]] = temp[1]
}
}
});
});
const dataMap : Map<string, any | null> = data.toMap();
const dataMap : Map<string, any | null> = data.toMap();
dataMap.forEach((value, key) => {
dataMap.forEach((value, key) => {
if(value == null){
if (value == null) {
value = "";
value = "";
}
}
let encodeKey = encodeURIComponent(key)!
let encodeKey = encodeURIComponent(key)!
if (value instanceof UTSJSONObject || value instanceof Array<any|null>){
if (value instanceof UTSJSONObject || value instanceof Array<any | null>) {
queryMap[encodeKey] = encodeURIComponent(JSON.stringify(value)!)!
queryMap[encodeKey] = encodeURIComponent(JSON.stringify(value)!)!
}else{
} else if (value instanceof Map<string, any>) {
queryMap[encodeKey] = encodeURIComponent(`${value!}`)!;
queryMap[encodeKey] = encodeURIComponent(JSON.stringify(new UTSJSONObject(value))!)!
} else {
queryMap[encodeKey] = encodeURIComponent(`${value!}`)!;
}
}
})
})
let queryStr = "";
let queryStr = "";
queryMap.forEach((value, key) => {
queryMap.forEach((value, key) => {
queryStr += key + "=" + value + "&"
queryStr += key + "=" + value + "&"
});
});
queryStr = queryStr.slice(0, -1);
queryStr = queryStr.slice(0, -1);
if (queryStr.length > 0) {
if (queryStr.length > 0) {
newUrl += "?" + queryStr;
newUrl += "?" + queryStr;
}
}
if (hash.length > 0) {
if (hash.length > 0) {
newUrl += "#" + hash;
newUrl += "#" + hash;
}
}
return newUrl;
return newUrl;
}
}
private percentEscapedString(str
: string): string {
private percentEscapedString(str
: string) : string {
//如果url已经有部分经过encode,那么需要先decode再encode。
//如果url已经有部分经过encode,那么需要先decode再encode。
return str.removingPercentEncoding?.addingPercentEncoding(withAllowedCharacters
= CharacterSet.urlQueryAllowed) ?? str
return str.removingPercentEncoding?.addingPercentEncoding(withAllowedCharacters
= CharacterSet.urlQueryAllowed) ?? str
}
}
...
@@ -287,7 +310,7 @@ class NetworkManager implements URLSessionDataDelegate {
...
@@ -287,7 +310,7 @@ class NetworkManager implements URLSessionDataDelegate {
export {
export {
NetworkManager,
NetworkManager,
NetworkRequestListener,
NetworkRequestListener,
NetworkUploadFileListener,
NetworkUploadFileListener,
NetworkDownloadFileListener
NetworkDownloadFileListener
}
}
\ No newline at end of file
uni_modules/uni-network/utssdk/app-ios/network/download/DownloadController.uts
浏览文件 @
f9df85a0
...
@@ -91,6 +91,8 @@ export class DownloadController implements URLSessionDownloadDelegate {
...
@@ -91,6 +91,8 @@ export class DownloadController implements URLSessionDownloadDelegate {
let valueStr = "";
let valueStr = "";
if (value instanceof UTSJSONObject) {
if (value instanceof UTSJSONObject) {
valueStr = JSON.stringify(value) ?? ""
valueStr = JSON.stringify(value) ?? ""
}else if(value instanceof Map<string, any>){
valueStr = JSON.stringify(new UTSJSONObject(value)) ?? ""
}else{
}else{
valueStr = `${value}`
valueStr = `${value}`
}
}
...
...
uni_modules/uni-network/utssdk/app-ios/network/upload/UploadController.uts
浏览文件 @
f9df85a0
...
@@ -97,6 +97,8 @@ class UploadController implements URLSessionDataDelegate {
...
@@ -97,6 +97,8 @@ class UploadController implements URLSessionDataDelegate {
let valueStr = "";
let valueStr = "";
if (value instanceof UTSJSONObject) {
if (value instanceof UTSJSONObject) {
valueStr = JSON.stringify(value) ?? ""
valueStr = JSON.stringify(value) ?? ""
}else if(value instanceof Map<string, any>){
valueStr = JSON.stringify(new UTSJSONObject(value)) ?? ""
}else{
}else{
valueStr = `${value}`
valueStr = `${value}`
}
}
...
@@ -119,6 +121,11 @@ class UploadController implements URLSessionDataDelegate {
...
@@ -119,6 +121,11 @@ class UploadController implements URLSessionDataDelegate {
if (valueStr != null) {
if (valueStr != null) {
this.fillTextPart(body, boundary, key, valueStr as string)
this.fillTextPart(body, boundary, key, valueStr as string)
}
}
}else if(value instanceof Map<string, any>){
let valueStr = JSON.stringify(new UTSJSONObject(value))
if (valueStr != null) {
this.fillTextPart(body, boundary, key, valueStr as string)
}
}else{
}else{
this.fillTextPart(body, boundary, key, `${value}`)
this.fillTextPart(body, boundary, key, `${value}`)
}
}
...
...
uni_modules/uni-payment-wxpay/utssdk/interface.uts
已删除
100644 → 0
浏览文件 @
c485ce15
uni_modules/uni-tabBar/utssdk/app-android/index.uts
浏览文件 @
f9df85a0
...
@@ -107,7 +107,11 @@ export const setTabBarStyle = defineAsyncApi<
...
@@ -107,7 +107,11 @@ export const setTabBarStyle = defineAsyncApi<
['backgroundImage', options.backgroundImage],
['backgroundImage', options.backgroundImage],
['backgroundRepeat', options.backgroundRepeat],
['backgroundRepeat', options.backgroundRepeat],
])
])
if (isString(options.borderStyle)) {
if (isString(options.borderColor)) {
style.set(
'borderStyle', options.borderColor as string,
)
} else if (isString(options.borderStyle)) {
style.set(
style.set(
'borderStyle',
'borderStyle',
getTabBarBorderStyle(options.borderStyle as string),
getTabBarBorderStyle(options.borderStyle as string),
...
...
uni_modules/uni-tabBar/utssdk/interface.uts
浏览文件 @
f9df85a0
...
@@ -235,10 +235,33 @@ export type SetTabBarStyleOptions = {
...
@@ -235,10 +235,33 @@ export type SetTabBarStyleOptions = {
* - no-repeat: 背景图片在垂直方向和水平方向都拉伸
* - no-repeat: 背景图片在垂直方向和水平方向都拉伸
*/
*/
backgroundRepeat?: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat'
backgroundRepeat?: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat'
/**
* tabbar上边框的颜色(优先级高于 borderStyle)
* @tutorial https://doc.dcloud.net.cn/uni-app-x/api/set-tabbar.html#settabbarstyle
* @uniPlatform {
* "app": {
* "android": {
* "osVer": "5.0",
* "uniVer": "x",
* "unixVer": "x"
* },
* "ios": {
* "osVer": "12.0",
* "uniVer": "x",
* "unixVer": "4.23"
* }
* },
* "web": {
* "uniVer": "x",
* "unixVer": "4.23"
* }
* }
*/
borderColor?: string | string.ColorString
/**
/**
* tabbar上边框的颜色
* tabbar上边框的颜色
*/
*/
borderStyle?:
string
borderStyle?:
'black' | 'white'
/**
/**
* tabbar 中间按钮 仅在 list 项为偶数时有效
* tabbar 中间按钮 仅在 list 项为偶数时有效
* @internal
* @internal
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录