Files
aistream-test/UTS 插件工程/pages/SyntaxCase/index.uvue
T
2025-11-27 20:48:18 +08:00

555 lines
24 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<scroll-view style="flex:1">
<view >
<button @click="testUtsSync">点击测试uts同步方法</button>
<view>测试return
{{ format(testUtsSyncResult) }}
</view>
<button @click="testUtsSyncWithCallback">
点击测试uts带callback的同步方法
</button>
<view>测试return{{ format(testUtsSyncWithCallbackResult['return']) }}</view>
<view>测试success{{ format(testUtsSyncWithCallbackResult['success']) }}</view>
<view>测试complete{{ format(testUtsSyncWithCallbackResult['complete']) }}</view>
<button @click="testUtsAsync">点击测试uts异步方法</button>
<view>测试return{{ format(testUtsAsyncResult['return']) }}</view>
<view>测试success{{ format(testUtsAsyncResult['success']) }}</view>
<view>测试complete{{ format(testUtsAsyncResult['complete']) }}</view>
<button @click="testUtsAsyncMulitParam">点击测试uts异步方法-多参数</button>
<view>测试return{{ format(testUtsAsyncMulitParamResult['return']) }}</view>
<view>测试success{{ format(testUtsAsyncMulitParamResult['success']) }}</view>
<view>测试complete{{ format(testUtsAsyncMulitParamResult['complete']) }}</view>
<button @click="testUtsClassConstructor">点击测试uts class构造函数</button>
<view>测试callback{{ format(testUtsClassConstructorResult['callback']) }}</view>
<button @click="testUtsClassStaticProp">点击测试uts class静态属性</button>
<view>测试value{{ format(testUtsClassStaticPropResult) }}</view>
<button @click="testUtsClassStaticSyncWithCallback">
点击测试uts class静态方法
</button>
<view>测试return{{ format(testUtsClassStaticSyncWithCallbackResult['return']) }}</view>
<view>测试success{{ format(testUtsClassStaticSyncWithCallbackResult['success']) }}</view>
<view>测试complete{{ format(testUtsClassStaticSyncWithCallbackResult['complete']) }}</view>
<button @click="testUtsClassStaticAsync">点击测试uts class静态异步方法</button>
<view>测试return{{ format(testUtsClassStaticAsyncResult['return']) }}</view>
<view>测试success{{ format(testUtsClassStaticAsyncResult['success']) }}</view>
<view>测试complete{{ format(testUtsClassStaticAsyncResult['complete']) }}</view>
<button @click="testUtsClassProp">点击测试uts class实例属性</button>
<view>测试value{{ format(testUtsClassPropResult) }}</view>
<button @click="testUtsClassSyncWithCallback">
点击测试uts class实例方法
</button>
<view>测试return{{ format(testUtsClassSyncWithCallbackResult['return']) }}</view>
<view>测试success{{ format(testUtsClassSyncWithCallbackResult['success']) }}</view>
<view>测试complete{{ format(testUtsClassSyncWithCallbackResult['complete']) }}</view>
<button @click="testUtsClassAsync">点击测试uts class实例异步方法</button>
<view>测试return{{ format(testUtsClassAsyncResult['return']) }}</view>
<view>测试success{{ format(testUtsClassAsyncResult['success']) }}</view>
<view>测试complete{{ format(testUtsClassAsyncResult['complete']) }}</view>
<button @click="testUtsClassInstance">点击测试uts方法返回类实例</button>
<view>测试prop{{ format(testUtsClassInstanceResult['prop']) }}</view>
<view>测试return{{ format(testUtsClassInstanceResult['return']) }}</view>
<view>测试success{{ format(testUtsClassInstanceResult['success']) }}</view>
<view>测试complete{{ format(testUtsClassInstanceResult['complete']) }}</view>
<view>测试callback{{ format(testUtsClassInstanceResult['callback']) }}</view>
<button @click="testUtsClassSetter">点击测试class 示例setter方法</button>
<view>测试setter{{ format(testUtsClassSetterResult) }}</view>
<view>测试promise返回值:{{ format(testUtsReturnPromiseResult) }}</view>
<button @click="testAll">点击测试所有</button>
<!-- #ifdef APP-IOS -->
<button @click="testPromiseStaticMethod">点击测试promise静态方法</button>
<button @click="testBigArrayBuffer">测试原生->JS ArrayBuffer内存共享</button>
<button @click="doTestBufferParam">测试JS->原生 ArrayBuffer内存共享</button>
<button @click="doTestNestedBufferParam">嵌套类型ArrayBuffer参数传递</button>
<button @click="doTestBufferReturnedValue">ArrayBuffer返回值</button>
<button @click="doTestNestedBufferReturnedValue">嵌套类型ArrayBuffer返回值</button>
<!-- #endif -->
</view>
<view style="height: 20px;"></view>
</scroll-view>
</template>
<script>
// #ifndef H5
import {
MAX,
testSync,
testSyncWithCallback,
testAsync,
AsyncOptions,
TestOptions,
SyncOptions,
testAsyncParam3,
Test,
request,
SetterTest,
PromiseReturnDemo,
} from "../../uni_modules/uts-syntaxcase";
// #endif
// #ifdef APP-IOS
import {
testPromiseStaticMethod,
testBigArrayBuffer,
testArrayBufferParam,
testMultyArrayBufferParam,
testMultyReturnBuffer,
testReturnedArrayBuffer
} from "@/uni_modules/uts-syntaxcase"
// #endif
let test:Test|null = null
let id = 0
export default {
data() {
return {
testUtsSyncResult: null,
testUtsSyncWithCallbackResult: {
return: null,
success: null,
fail: null,
complete: null,
},
testUtsAsyncResult: {
return: null,
success: null,
fail: null,
complete: null,
},
testUtsAsyncMulitParamResult: {
return: null,
success: null,
fail: null,
complete: null,
},
testUtsClassConstructorResult: {
callback: null
},
testUtsClassStaticPropResult: null,
testUtsClassStaticSyncWithCallbackResult: {
return: null,
success: null,
fail: null,
complete: null,
},
testUtsClassStaticAsyncResult: {
return: null,
success: null,
fail: null,
complete: null,
},
testUtsClassPropResult: null,
testUtsClassSyncWithCallbackResult: {
return: null,
success: null,
fail: null,
complete: null,
},
testUtsClassAsyncResult: {
return: null,
success: null,
fail: null,
complete: null,
},
testUtsClassInstanceResult: {
prop: null,
return: null,
success: null,
fail: null,
complete: null,
callback: null
},
testUtsClassSetterResult: null,
testUtsReturnPromiseResult: null,
}
},
methods: {
format(v:any|null):string {
if(v == null){
return '--'
}
if(v == true){
return "通过"
}
return "未通过"
},
testAll() {
this.testUtsSync();
this.testUtsSyncWithCallback();
this.testUtsAsync();
this.testUtsAsyncMulitParam()
this.testUtsClassConstructor();
this.testUtsClassStaticProp();
this.testUtsClassStaticSyncWithCallback();
this.testUtsClassStaticAsync();
this.testUtsClassProp();
this.testUtsClassSyncWithCallback();
this.testUtsClassAsync();
this.testUtsClassInstance();
this.testUtsClassSetter();
this.testUtsReturnPromise();
},
testUtsSync() {
this.testUtsSyncResult = false;
try {
if (testSync("dcloud").msg == "hello dcloud") {
this.testUtsSyncResult = true;
}
} catch (e) {
console.error("testUtsSync", e);
}
},
testUtsSyncWithCallback() {
try {
this.testUtsSyncWithCallbackResult['return'] = false;
this.testUtsSyncWithCallbackResult['success'] = false;
this.testUtsSyncWithCallbackResult['complete'] = false;
if (
testSyncWithCallback({
type: "success",
success: (res:any) => {
console.log("testSyncWithCallback.success.callback", res);
this.testUtsSyncWithCallbackResult['success'] = true;
},
fail: (res:any) => {
console.log("testSyncWithCallback.fail.callback", res);
// testUtsSyncWithCallbackResult.fail = true;
},
complete: (res:any) => {
console.log("testSyncWithCallback.complete.callback", res);
this.testUtsSyncWithCallbackResult['complete'] = true;
},
} as AsyncOptions)['name'] === "testSyncWithCallback"
) {
this.testUtsSyncWithCallbackResult['return'] = true;
}
} catch (e) {}
},
async testUtsAsync():Promise<void|null> {
this.testUtsAsyncResult['return'] = false;
this.testUtsAsyncResult['success'] = false;
// testUtsAsyncResult.fail = false;
this.testUtsAsyncResult['complete'] = false;
try {
const res = await testAsync({
type:"success",
success:(res:any) => {
console.log("testAsync.success.callback", res);
this.testUtsAsyncResult['success'] = true;
},
fail:(res:any) => {
console.log("testAsync.fail.callback", res);
},
complete:(res:any) => {
console.log("testAsync.complete.callback", res);
this.testUtsAsyncResult['complete'] = true;
},
} as AsyncOptions);
if (res.name === "testAsync") {
this.testUtsAsyncResult['return'] = true;
}
} catch (e) {}
return null
},
async testUtsAsyncMulitParam():Promise<void|null> {
this.testUtsAsyncMulitParamResult['return'] = false;
this.testUtsAsyncMulitParamResult['success'] = false;
this.testUtsAsyncMulitParamResult['complete'] = false;
try {
const res = await testAsyncParam3(100,"hello",{
type:"success",
success:(res) => {
console.log("testUtsAsyncMulitParam.success.callback", res);
this.testUtsAsyncMulitParamResult['success'] = true;
},
fail:(res) => {
console.log("testUtsAsyncMulitParam.fail.callback", res);
},
complete:(res) => {
console.log("testUtsAsyncMulitParam.complete.callback", res);
this.testUtsAsyncMulitParamResult['complete'] = true;
},
} as AsyncOptions);
if (res.name === "testUtsAsyncMulitParam") {
this.testUtsAsyncMulitParamResult['return'] = true;
}
} catch (e) {}
return null
},
testUtsClassConstructor() {
this.testUtsClassConstructorResult['callback'] = false
id++
test = new Test(id, {
name:'name' + id,
callback:(res) => {
console.log(res)
this.testUtsClassConstructorResult['callback'] = true
}
} as TestOptions)
},
testUtsClassStaticProp() {
this.testUtsClassStaticPropResult = false
if (Test.type === 'Test') {
this.testUtsClassStaticPropResult = true
}
},
testUtsClassStaticSyncWithCallback() {
try {
this.testUtsClassStaticSyncWithCallbackResult['return'] = false;
this.testUtsClassStaticSyncWithCallbackResult['success'] = false;
this.testUtsClassStaticSyncWithCallbackResult['complete'] = false;
if (
Test.testClassStaticSyncWithCallback({
type:"success",
success:(res) => {
console.log("testStaticSyncWithCallback.success.callback", res);
this.testUtsClassStaticSyncWithCallbackResult['success'] = true;
},
fail:(res) => {
console.log("testStaticSyncWithCallback.fail.callback", res);
},
complete:(res) => {
console.log("testStaticSyncWithCallback.complete.callback", res);
this.testUtsClassStaticSyncWithCallbackResult['complete'] = true;
},
} as AsyncOptions)['name'] === "testSyncWithCallback"
) {
this.testUtsClassStaticSyncWithCallbackResult['return'] = true;
}
} catch (e) {}
},
async testUtsClassStaticAsync():Promise<void|null> {
this.testUtsClassStaticAsyncResult['return'] = false;
this.testUtsClassStaticAsyncResult['success'] = false;
this.testUtsClassStaticAsyncResult['complete'] = false;
try {
const res = await Test.testClassStaticAsync({
type:"success",
success:(res:any) => {
console.log("testAsync.success.callback", res);
this.testUtsClassStaticAsyncResult['success'] = true;
},
fail:(res:any) => {
console.log("testAsync.fail.callback", res);
},
complete:(res:any) => {
console.log("testAsync.complete.callback", res);
this.testUtsClassStaticAsyncResult['complete'] = true;
},
} as AsyncOptions);
if (res.name === "testAsync") {
this.testUtsClassStaticAsyncResult['return'] = true;
}
} catch (e) {}
return null
},
testUtsClassProp() {
if (test == null) {
this.testUtsClassConstructor()
}
this.testUtsClassPropResult = false
if (test!.id > 0) {
this.testUtsClassPropResult = true
}
},
testUtsClassSyncWithCallback() {
if (test == null) {
this.testUtsClassConstructor()
}
try {
this.testUtsClassSyncWithCallbackResult['return'] = false;
this.testUtsClassSyncWithCallbackResult['success'] = false;
this.testUtsClassSyncWithCallbackResult['complete'] = false;
if (
test!.testClassSyncWithCallback({
type:"success",
success:(res) => {
console.log("testSyncWithCallback.success.callback", res);
this.testUtsClassSyncWithCallbackResult['success'] = true;
},
fail:(res) => {
console.log("testSyncWithCallback.fail.callback", res);
// testUtsClassSyncWithCallbackResult.fail = true;
},
complete:(res) => {
console.log("testSyncWithCallback.complete.callback", res);
this.testUtsClassSyncWithCallbackResult['complete'] = true;
}
} as AsyncOptions).name === "testSyncWithCallback"
) {
this.testUtsClassSyncWithCallbackResult['return'] = true;
}
} catch (e) {}
},
async testUtsClassAsync():Promise<void|null> {
if (test == null) {
this.testUtsClassConstructor()
}
this.testUtsClassAsyncResult['return'] = false;
this.testUtsClassAsyncResult['success'] = false;
this.testUtsClassAsyncResult['complete'] = false;
try {
const res = await test!.testClassAsync({
type:"success",
success:(res) => {
console.log("testAsync.success.callback", res);
this.testUtsClassAsyncResult['success'] = true;
},
fail:(res) => {
console.log("testAsync.fail.callback", res);
},
complete:(res) => {
console.log("testAsync.complete.callback", res);
this.testUtsClassAsyncResult['complete'] = true;
},
} as AsyncOptions);
if (res.name === "testAsync") {
this.testUtsClassAsyncResult['return'] = true;
}
} catch (e) {
console.error(e)
}
return null
},
testUtsClassInstance() {
this.testUtsClassInstanceResult['prop'] = false;
this.testUtsClassInstanceResult['return'] = false;
this.testUtsClassInstanceResult['success'] = false;
// testUtsClassAsyncResult.fail = false;
this.testUtsClassInstanceResult['complete'] = false;
this.testUtsClassInstanceResult['callback'] = false;
const url = 'https://dcloud.io/'
const task = request(url)
if (task!.url === url && task!.abort().url === url) {
this.testUtsClassInstanceResult['prop'] = true;
}
task!.onCallback((res) => {
if (res === 'onCallback') {
this.testUtsClassInstanceResult['callback'] = true;
}
})
const res = task!.sync({
success:(res) => {
console.log("task.sync.success.callback", res);
this.testUtsClassInstanceResult['success'] = true;
},
fail:(res) => {
console.log("task.sync.fail.callback", res);
},
complete:(res) => {
console.log("task.sync.complete.callback", res);
this.testUtsClassInstanceResult['complete'] = true;
}} as SyncOptions)
if (res === 'sync') {
this.testUtsClassInstanceResult['return'] = true;
}
},
testUtsClassSetter() {
this.testUtsClassSetterResult = false;
try {
let obj = new SetterTest()
obj.nickName = "Tom";
if (obj.nickName == "Tom") {
this.testUtsClassSetterResult = true;
}
} catch (e) {
console.error("testUtsClassSetter", e);
}
},
testUtsReturnPromise() {
this.testUtsReturnPromiseResult = false;
try {
let demo = new PromiseReturnDemo();
demo.test1();
demo.test2();
if (demo.recordRet == 2) {
this.testUtsReturnPromiseResult = true;
}
} catch (e) {
console.error("testUtsClassSetter", e);
}
},
// #ifdef APP-IOS
testPromiseStaticMethod() {
testPromiseStaticMethod()
},
testBigArrayBuffer() {
testBigArrayBuffer({
url: "/static/test.txt",
success: (res) => {
console.log("读取成功")
console.log("ArrayBuffer 长度:",res.byteLength)
},
fail: (code) => {
console.log(code)
}
})
},
doTestBufferParam() {
let buffer = new ArrayBuffer(16)
let dataView = new DataView(buffer)
dataView.setInt16(1, 42)
testArrayBufferParam(buffer)
},
doTestNestedBufferParam() {
let buffer = new ArrayBuffer(16)
let dataView = new DataView(buffer)
dataView.setInt16(1, 42)
testMultyArrayBufferParam({
a: "1234",
b: true,
c: buffer
})
},
doTestBufferReturnedValue() {
let buffer = testReturnedArrayBuffer()
let dataView = new DataView(buffer)
console.log(dataView.getInt16(0))
console.log(dataView.getInt16(1))
console.log(dataView.getInt16(2))
console.log(dataView.getInt16(3))
console.log(dataView.getInt16(4))
console.log(dataView.getInt16(5))
console.log(dataView.getInt16(6))
console.log(dataView.getInt16(7))
console.log(dataView.getInt16(8))
console.log(dataView.getInt16(9))
console.log(dataView.getInt16(10))
console.log(dataView.getInt16(11))
console.log(dataView.getInt16(12))
console.log(dataView.getInt16(13))
console.log(dataView.getInt16(14))
console.log(new Uint8Array(buffer))
console.log(new Uint8ClampedArray(buffer))
console.log(new Uint16Array(buffer))
console.log(new Uint32Array(buffer))
console.log(new BigUint64Array(buffer))
console.log(new Float32Array(buffer))
console.log(new Float64Array(buffer))
console.log(new Int8Array(buffer))
console.log(new Int16Array(buffer))
console.log(new Int32Array(buffer))
console.log(new BigInt64Array(buffer))
},
doTestNestedBufferReturnedValue() {
let ret = testMultyReturnBuffer()
console.log(ret.a)
let dataView = new DataView(ret.b, 0, 16)
console.log(dataView.getInt16(1))
}
// #endif
}
}
</script>