提交 c05850ae 编写于 作者: M mahaifeng

[activity-callback]添加条件编译

上级 614f9738
import { RequestTask, SyncOptions } from "./interface.uts"; import { RequestTask, SyncOptions } from "./interface.uts";
import { log } from "./utils.uts"; import { log } from "./utils.uts";
export type AsyncOptions = { export type AsyncOptions = {
type : string; type : string;
success : (res : string) => void; success : (res : string) => void;
fail : (res : string) => void; fail : (res : string) => void;
complete : (res : string) => void; complete : (res : string) => void;
}; };
export type { export type {
SyncOptions SyncOptions
} from "./interface.uts"; } from "./interface.uts";
type SyntaxResult = { type SyntaxResult = {
name : string name : string
}; };
type SyncResult = { type SyncResult = {
msg : string msg : string
} }
/** /**
...@@ -29,307 +29,307 @@ export const MAX = 100; ...@@ -29,307 +29,307 @@ export const MAX = 100;
* @returns * @returns
*/ */
export function testSync(msg : string) : SyncResult { export function testSync(msg : string) : SyncResult {
console.log("log test"); console.log("log test");
log("log test1"); log("log test1");
const res : SyncResult = { const res : SyncResult = {
msg: `hello ${msg}` msg: `hello ${msg}`
} }
return res return res
// return { // return {
// msg: `hello ${msg}`, // msg: `hello ${msg}`,
// }; // };
} }
/** /**
* 导出一个同步方法(触发了数组越界异常) * 导出一个同步方法(触发了数组越界异常)
*/ */
export function testSyncError() { export function testSyncError() {
const arr : string[] = []; const arr : string[] = [];
console.log(arr[1]); console.log(arr[1]);
} }
/** /**
* 导出一个带callback的同步方法 * 导出一个带callback的同步方法
* @param opts * @param opts
*/ */
export function testSyncWithCallback(opts : AsyncOptions) : SyntaxResult { export function testSyncWithCallback(opts : AsyncOptions) : SyntaxResult {
if (opts.type == "success") { if (opts.type == "success") {
opts.success("success"); opts.success("success");
} else { } else {
opts.fail("fail"); opts.fail("fail");
} }
opts.complete("complete"); opts.complete("complete");
const res : SyntaxResult = { const res : SyntaxResult = {
name: "testSyncWithCallback" name: "testSyncWithCallback"
} }
return res; return res;
// return { name: "testSyncWithCallback" }; // return { name: "testSyncWithCallback" };
} }
async function testAwaitPromise(res : SyntaxResult) : Promise<SyntaxResult> { async function testAwaitPromise(res : SyntaxResult) : Promise<SyntaxResult> {
// #ifdef APP-ANDROID // #ifdef APP-ANDROID
return await new Promise(function (resolve : (res : SyntaxResult) => void) { return await new Promise(function (resolve : (res : SyntaxResult) => void) {
resolve(res) resolve(res)
}) })
// #endif // #endif
// #ifndef APP-ANDROID // #ifndef APP-ANDROID
return res return res
// #endif // #endif
} }
/** /**
* 导出一个异步方法 * 导出一个异步方法
* @returns * @returns
*/ */
export async function testAsync(opts : AsyncOptions) : Promise<SyntaxResult> { export async function testAsync(opts : AsyncOptions) : Promise<SyntaxResult> {
if (opts.type == "success") { if (opts.type == "success") {
opts.success("success"); opts.success("success");
} else { } else {
opts.fail("fail"); opts.fail("fail");
} }
opts.complete("complete"); opts.complete("complete");
const res : SyntaxResult = { const res : SyntaxResult = {
name: "testAsync" name: "testAsync"
} }
return await testAwaitPromise(res); return await testAwaitPromise(res);
// return { name: "testAsync" }; // return { name: "testAsync" };
} }
export async function testAsyncParam3(id:number,name:string,opts : AsyncOptions) : Promise<SyntaxResult> { export async function testAsyncParam3(id : number, name : string, opts : AsyncOptions) : Promise<SyntaxResult> {
console.log("id",id,"name",name) console.log("id", id, "name", name)
if (opts.type == "success") { if (opts.type == "success") {
opts.success("success"); opts.success("success");
} else { } else {
opts.fail("fail"); opts.fail("fail");
} }
opts.complete("complete"); opts.complete("complete");
const res : SyntaxResult = { const res : SyntaxResult = {
name: "testUtsAsyncMulitParam" name: "testUtsAsyncMulitParam"
} }
return await testAwaitPromise(res); return await testAwaitPromise(res);
// return { name: "testAsync" }; // return { name: "testAsync" };
} }
export type TestOptions = { export type TestOptions = {
name : string; name : string;
callback : (res : string) => void; callback : (res : string) => void;
}; };
export class Test { export class Test {
id : number; id : number;
name : string; name : string;
static type : string = "Test"; static type : string = "Test";
constructor(id : number, options : TestOptions) { constructor(id : number, options : TestOptions) {
this.id = id; this.id = id;
this.name = options.name; this.name = options.name;
options.callback("Test.constructor"); options.callback("Test.constructor");
} }
static testClassStaticSyncWithCallback(opts : AsyncOptions) : SyntaxResult { static testClassStaticSyncWithCallback(opts : AsyncOptions) : SyntaxResult {
return testSyncWithCallback(opts); return testSyncWithCallback(opts);
} }
static async testClassStaticAsync(opts : AsyncOptions) : Promise<SyntaxResult> { static async testClassStaticAsync(opts : AsyncOptions) : Promise<SyntaxResult> {
const res = await testAsync(opts); const res = await testAsync(opts);
return res; return res;
} }
testClassSyncWithCallback(opts : AsyncOptions) : SyntaxResult { testClassSyncWithCallback(opts : AsyncOptions) : SyntaxResult {
return testSyncWithCallback(opts); return testSyncWithCallback(opts);
} }
async testClassAsync(opts : AsyncOptions) : Promise<SyntaxResult> { async testClassAsync(opts : AsyncOptions) : Promise<SyntaxResult> {
const res = await testAsync(opts); const res = await testAsync(opts);
return res; return res;
} }
} }
class RequestTaskImpl implements RequestTask { class RequestTaskImpl implements RequestTask {
url : string url : string
constructor(url : string) { constructor(url : string) {
this.url = url this.url = url
} }
abort() : RequestTask { abort() : RequestTask {
return this return this
} }
onCallback(callback : (res : string) => void) { onCallback(callback : (res : string) => void) {
callback("onCallback") callback("onCallback")
} }
sync(options : SyncOptions) : string { sync(options : SyncOptions) : string {
options.success?.("success") options.success?.("success")
options.complete?.("success") options.complete?.("success")
return "sync" return "sync"
} }
} }
export function request(url : string) : RequestTask | null { export function request(url : string) : RequestTask | null {
return new RequestTaskImpl(url) return new RequestTaskImpl(url)
} }
// #ifdef APP-ANDROID
// #ifdef UNI-APP-X
// #ifdef UNI-APP-X import KeyEvent from 'android.view.KeyEvent';
import KeyEvent from 'android.view.KeyEvent'; import Configuration from 'android.content.res.Configuration';
import Configuration from 'android.content.res.Configuration'; import Bundle from 'android.os.Bundle';
import Bundle from 'android.os.Bundle'; import Menu from 'android.view.Menu';
import Menu from 'android.view.Menu'; import KeyboardShortcutGroup from 'android.view.KeyboardShortcutGroup';
import KeyboardShortcutGroup from 'android.view.KeyboardShortcutGroup'; import WindowManager from 'android.view.WindowManager';
import WindowManager from 'android.view.WindowManager'; import ActionMode from 'android.view.ActionMode';
import ActionMode from 'android.view.ActionMode'; // export let onCallBackChange: (event: string) => void = (res) => {};
// export let onCallBackChange: (event: string) => void = (res) => {};
let callback : (eventLog : string) => void = (res) => { };
let callback : (eventLog : string) => void = (res) => { }; let callbackIds : string[] = [];
let callbackIds : string[] = []; export function onCallbackChange(fn : (eventLog : string) => void) {
export function onCallbackChange(fn : (eventLog : string) => void) { callback = fn
callback = fn }
} export function registerCallbacks() {
export function registerCallbacks() {
let reg1 = UTSAndroid.registerActivityCallback(new UTSAcvitiyLifeCycleCallback())
let reg1 = UTSAndroid.registerActivityCallback(new UTSAcvitiyLifeCycleCallback()) let reg2 = UTSAndroid.registerActivityCallback(new UTSActivityWindowCallback())
let reg2 = UTSAndroid.registerActivityCallback(new UTSActivityWindowCallback()) let reg3 = UTSAndroid.registerActivityCallback(new UTSAcvitiyKeyEventCallback())
let reg3 = UTSAndroid.registerActivityCallback(new UTSAcvitiyKeyEventCallback()) let reg4 = UTSAndroid.registerActivityCallback(new UTSActivityCallback())
let reg4 = UTSAndroid.registerActivityCallback(new UTSActivityCallback()) let reg5 = UTSAndroid.registerActivityCallback(new UTSActivityComponentCallback())
let reg5 = UTSAndroid.registerActivityCallback(new UTSActivityComponentCallback()) callbackIds.push(reg1)
callbackIds.push(reg1) callbackIds.push(reg2)
callbackIds.push(reg2) callbackIds.push(reg3)
callbackIds.push(reg3) callbackIds.push(reg4)
callbackIds.push(reg4) callbackIds.push(reg5)
callbackIds.push(reg5)
}
}
export function unRegisterCallbacks() {
export function unRegisterCallbacks() { callbackIds.forEach((value) => {
callbackIds.forEach((value) => { console.log(value)
console.log(value) UTSAndroid.unRegisterActivityCallback(value)
UTSAndroid.unRegisterActivityCallback(value) })
}) }
}
export class UTSAcvitiyLifeCycleCallback extends UniActivityLifeCycleCallback {
export class UTSAcvitiyLifeCycleCallback extends UniActivityLifeCycleCallback { constructor() {
constructor() { super()
super() }
} override onCreate(params : UniActivityParams, savedInstanceState : Bundle | null) {
override onCreate(params : UniActivityParams, savedInstanceState : Bundle | null) { console.log('UTSAcvitiyLifeCycle', 'onCreate', savedInstanceState)
console.log('UTSAcvitiyLifeCycle', 'onCreate', savedInstanceState) callback('onCreate')
callback('onCreate') }
}
override onResume(params : UniActivityParams) {
override onResume(params : UniActivityParams) { console.log('UTSAcvitiyLifeCycle', 'onResume', params)
console.log('UTSAcvitiyLifeCycle', 'onResume', params) callback('onResume')
callback('onResume') }
} override onPreResume(params : UniActivityParams) {
override onPreResume(params : UniActivityParams) { console.log('UTSAcvitiyLifeCycle', 'onPreResume', params)
console.log('UTSAcvitiyLifeCycle', 'onPreResume', params) callback('onPreResume')
callback('onPreResume') }
} override onStart(params : UniActivityParams) {
override onStart(params : UniActivityParams) { console.log('UTSAcvitiyLifeCycle', 'onStart', params)
console.log('UTSAcvitiyLifeCycle', 'onStart', params) callback('onStart')
callback('onStart') }
} override onPreStart(params : UniActivityParams) {
override onPreStart(params : UniActivityParams) { console.log('UTSAcvitiyLifeCycle', 'onPreStart', params)
console.log('UTSAcvitiyLifeCycle', 'onPreStart', params) callback('onPreStart')
callback('onPreStart') }
} }
} export class UTSAcvitiyKeyEventCallback extends UniActivityKeyEventCallback {
export class UTSAcvitiyKeyEventCallback extends UniActivityKeyEventCallback { constructor() {
constructor() { super()
super() }
} override onKeyDown(params : UniActivityParams, keyCode : Int, event : KeyEvent | null) {
override onKeyDown(params : UniActivityParams, keyCode : Int, event : KeyEvent | null) { console.log('UTSAcvitiyKeyEvent', 'onKeyDown', params, keyCode, '' + event)
console.log('UTSAcvitiyKeyEvent', 'onKeyDown', params, keyCode, '' + event) callback('onKeyDown')
callback('onKeyDown') }
} override onPreKeyDown(params : UniActivityParams, keyCode : Int, event : KeyEvent | null) {
override onPreKeyDown(params : UniActivityParams, keyCode : Int, event : KeyEvent | null) { console.log('UTSAcvitiyKeyEvent', 'onPreKeyDown', params, keyCode, '' + event)
console.log('UTSAcvitiyKeyEvent', 'onPreKeyDown', params, keyCode, '' + event) callback('onPreKeyDown')
callback('onPreKeyDown') }
} override onKeyLongPress(params : UniActivityParams, keyCode : Int, event : KeyEvent | null) {
override onKeyLongPress(params : UniActivityParams, keyCode : Int, event : KeyEvent | null) { console.log('UTSAcvitiyKeyEvent', 'onKeyLongPress', params, keyCode, '' + event)
console.log('UTSAcvitiyKeyEvent', 'onKeyLongPress', params, keyCode, '' + event) callback('onKeyLongPress')
callback('onKeyLongPress') }
} override onPreKeyLongPress(params : UniActivityParams, keyCode : Int, event : KeyEvent | null) {
override onPreKeyLongPress(params : UniActivityParams, keyCode : Int, event : KeyEvent | null) { console.log('UTSAcvitiyKeyEvent', 'onPreKeyLongPress', params, keyCode, '' + event)
console.log('UTSAcvitiyKeyEvent', 'onPreKeyLongPress', params, keyCode, '' + event) callback('onPreKeyLongPress')
callback('onPreKeyLongPress') }
} }
}
export class UTSActivityWindowCallback extends UniActivityWindowCallback {
export class UTSActivityWindowCallback extends UniActivityWindowCallback { constructor() {
constructor() { super()
super() }
} override dispatchPreKeyEvent(params : UniActivityParams, event : KeyEvent | null) {
override dispatchPreKeyEvent(params : UniActivityParams, event : KeyEvent | null) { console.log('UTSActivityWindowCallback', 'dispatchPreKeyEvent', params, '' + event)
console.log('UTSActivityWindowCallback', 'dispatchPreKeyEvent', params, '' + event) callback('dispatchPreKeyEvent')
callback('dispatchPreKeyEvent') }
} override dispatchKeyEvent(params : UniActivityParams, event : KeyEvent | null) {
override dispatchKeyEvent(params : UniActivityParams, event : KeyEvent | null) { console.log('UTSActivityWindowCallback', 'dispatchKeyEvent', params, '' + event)
console.log('UTSActivityWindowCallback', 'dispatchKeyEvent', params, '' + event) callback('dispatchKeyEvent')
callback('dispatchKeyEvent') }
} override onWindowAttributesChanged(params : UniActivityParams, attrs : WindowManager.LayoutParams) {
override onWindowAttributesChanged(params : UniActivityParams, attrs : WindowManager.LayoutParams) { console.log('UTSActivityWindowCallback', 'onWindowAttributesChanged', '' + attrs)
console.log('UTSActivityWindowCallback', 'onWindowAttributesChanged', '' + attrs) callback('onWindowAttributesChanged')
callback('onWindowAttributesChanged')
}
} override onAttachedToWindow(params : UniActivityParams) {
override onAttachedToWindow(params : UniActivityParams) { console.log('UTSActivityWindowCallback', 'onAttachedToWindow', params)
console.log('UTSActivityWindowCallback', 'onAttachedToWindow', params) callback('onAttachedToWindow')
callback('onAttachedToWindow')
}
} override onPanelClosed(params : UniActivityParams, featureId : Int, menu : Menu) {
override onPanelClosed(params : UniActivityParams, featureId : Int, menu : Menu) { console.log('UTSActivityWindowCallback', 'onPanelClosed', featureId, menu)
console.log('UTSActivityWindowCallback', 'onPanelClosed', featureId, menu) callback('onPanelClosed')
callback('onPanelClosed')
}
} override onWindowStartingActionMode(params : UniActivityParams, callback : ActionMode.Callback | null) {
override onWindowStartingActionMode(params : UniActivityParams, callback : ActionMode.Callback | null) { console.log('UTSActivityWindowCallback', 'onWindowStartingActionMode', callback)
console.log('UTSActivityWindowCallback', 'onWindowStartingActionMode', callback) callback('onWindowStartingActionMode')
callback('onWindowStartingActionMode') }
} override onProvideKeyboardShortcuts(params : UniActivityParams, data : MutableList<KeyboardShortcutGroup> | null, menu : Menu | null, deviceId : Int) {
override onProvideKeyboardShortcuts(params : UniActivityParams, data : MutableList<KeyboardShortcutGroup> | null, menu : Menu | null, deviceId : Int) { console.log('UTSActivityWindowCallback', 'onProvideKeyboardShortcuts', data, menu)
console.log('UTSActivityWindowCallback', 'onProvideKeyboardShortcuts', data, menu) callback('onProvideKeyboardShortcuts')
callback('onProvideKeyboardShortcuts') }
} override onPreWindowAttributesChanged(params : UniActivityParams, attrs : WindowManager.LayoutParams) {
override onPreWindowAttributesChanged(params : UniActivityParams, attrs : WindowManager.LayoutParams) { console.log('UTSActivityWindowCallback', 'onPreWindowAttributesChanged', attrs)
console.log('UTSActivityWindowCallback', 'onPreWindowAttributesChanged', attrs) callback('onPreWindowAttributesChanged')
callback('onPreWindowAttributesChanged') }
} override onPrePanelClosed(params : UniActivityParams, featureId : Int, menu : Menu) {
override onPrePanelClosed(params : UniActivityParams, featureId : Int, menu : Menu) { console.log('UTSActivityWindowCallback', 'onPrePanelClosed', featureId, menu)
console.log('UTSActivityWindowCallback', 'onPrePanelClosed', featureId, menu) callback('onPrePanelClosed')
callback('onPrePanelClosed') }
} }
}
export class UTSActivityCallback extends UniActivityCallback {
export class UTSActivityCallback extends UniActivityCallback { constructor() {
constructor() { super()
super() }
} override onBackPressed(params : UniActivityParams) {
override onBackPressed(params : UniActivityParams) { console.log('UTSActivityCallback', 'onBackPressed', params)
console.log('UTSActivityCallback', 'onBackPressed', params) callback('onBackPressed')
callback('onBackPressed') }
} override onPreBackPressed(params : UniActivityParams) {
override onPreBackPressed(params : UniActivityParams) { console.log('UTSActivityCallback', 'onPreBackPressed', params)
console.log('UTSActivityCallback', 'onPreBackPressed', params) callback('onPreBackPressed')
callback('onPreBackPressed') }
}
override onRequestPermissionsResult(params : UniActivityParams, requestCode : Int, permissions : MutableList<String>, grantResults : IntArray) {
override onRequestPermissionsResult(params : UniActivityParams, requestCode : Int, permissions : MutableList<String>, grantResults : IntArray) { console.log('UTSActivityCallback', 'onRequestPermissionsResult', params)
console.log('UTSActivityCallback', 'onRequestPermissionsResult', params) callback('onRequestPermissionsResult')
callback('onRequestPermissionsResult') }
}
}
}
export class UTSActivityComponentCallback extends UniActivityComponentCallback {
export class UTSActivityComponentCallback extends UniActivityComponentCallback { constructor() {
constructor() { super()
super() }
} override onConfigurationChanged(params : UniActivityParams, newConfig : Configuration) {
override onConfigurationChanged(params : UniActivityParams, newConfig : Configuration) { console.log('UTSActivityComponentCallback', 'onConfigurationChanged', params, '' + newConfig)
console.log('UTSActivityComponentCallback', 'onConfigurationChanged', params, '' + newConfig) callback('onConfigurationChanged')
callback('onConfigurationChanged') }
} override onPreConfigurationChanged(params : UniActivityParams, newConfig : Configuration) {
override onPreConfigurationChanged(params : UniActivityParams, newConfig : Configuration) { console.log('UTSActivityComponentCallback', 'onPreConfigurationChanged', params, '' + newConfig)
console.log('UTSActivityComponentCallback', 'onPreConfigurationChanged', params, '' + newConfig) callback('onPreConfigurationChanged')
callback('onPreConfigurationChanged') }
} }
} // #endif
// #endif // #endif
\ No newline at end of file \ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册