diff --git a/pages/SyntaxCase/utsAndroid.uvue b/pages/SyntaxCase/utsAndroid.uvue index 60ed44c038c2c88e7efb19d506d4391ef84a98d1..c1a3cec2c77af04e2f4c36a43b91834d83aa7074 100644 --- a/pages/SyntaxCase/utsAndroid.uvue +++ b/pages/SyntaxCase/utsAndroid.uvue @@ -44,6 +44,22 @@ + + + + + 点击注册activity 回调方法后,可以手动切换其他APP再返回,可在控制台和界面观察事件日志 + + + + + {{ cbText }} + + + + + + @@ -71,6 +87,18 @@ import { privacyStateTest, privacyStateCallBackTest } from '@/uni_modules/uts-platform-api' +// #ifdef APP-ANDROID +import { + UTSAcvitiyLifeCycleCallback, + UTSAcvitiyKeyEventCallback, + UTSActivityWindowCallback, + UTSActivityCallback, + UTSActivityComponentCallback, + onCallbackChange +} from '@/uni_modules/uts-syntaxcase/utssdk/app-android/index.uts' +// #endif + + import File from 'java.io.File'; import Intent from 'android.content.Intent'; @@ -81,9 +109,17 @@ export default { data() { return { text: '', + cbText:'', selectImage: '', + callbackIds: [] as string[] } }, + unmounted() { + // #ifdef APP-ANDROID + this.unRegActivityCallback() + // #endif + + }, onLoad: function () { let that = this initAppLifecycle(function (eventLog) { @@ -275,6 +311,35 @@ export default { } }) }, + // #ifdef APP-ANDROID + activityCallback(){ + var that = this + onCallbackChange(function (eventLog:string) { + // 展示捕捉到的声明周期日志 + let nextLine = that.cbText + eventLog + that.cbText = nextLine + let nextLineFlag = that.cbText + '\n' + that.cbText = nextLineFlag + }) + let reg1= UTSAndroid.registerActivityCallback( new UTSAcvitiyLifeCycleCallback()) + let reg2=UTSAndroid.registerActivityCallback(new UTSActivityWindowCallback()) + let reg3=UTSAndroid.registerActivityCallback(new UTSAcvitiyKeyEventCallback()) + let reg4= UTSAndroid.registerActivityCallback(new UTSActivityCallback()) + let reg5= UTSAndroid.registerActivityCallback(new UTSActivityComponentCallback()) + this.callbackIds.push(reg1) + this.callbackIds.push(reg2) + this.callbackIds.push(reg3) + this.callbackIds.push(reg4) + this.callbackIds.push(reg5) + }, + unRegActivityCallback(){ + this.callbackIds.forEach((value)=>{ + console.log(value) + UTSAndroid.unRegisterActivityCallback(value) + }) + } + // #endif + }, } diff --git a/uni_modules/uts-syntaxcase/utssdk/app-android/index.uts b/uni_modules/uts-syntaxcase/utssdk/app-android/index.uts new file mode 100644 index 0000000000000000000000000000000000000000..bdf9c897d7e2f81f296dda3ca0147bb30faeb6dd --- /dev/null +++ b/uni_modules/uts-syntaxcase/utssdk/app-android/index.uts @@ -0,0 +1,141 @@ +import KeyEvent from 'android.view.KeyEvent'; +import Configuration from 'android.content.res.Configuration'; +import Bundle from 'android.os.Bundle'; +import Menu from 'android.view.Menu'; +import KeyboardShortcutGroup from 'android.view.KeyboardShortcutGroup'; +import WindowManager from 'android.view.WindowManager'; +import ActionMode from 'android.view.ActionMode'; +// export let onCallBackChange: (event: string) => void = (res) => {}; +let callback : (eventLog : string) => void= (res) => {}; + +export function onCallbackChange(fn : (eventLog : string) => void) { + callback = fn +} + + +export class UTSAcvitiyLifeCycleCallback extends UniActivityLifeCycleCallback { + constructor() { + super() + } + override onCreate(params : UniActivityParams, savedInstanceState : Bundle | null) { + console.log('UTSAcvitiyLifeCycle', 'onCreate', savedInstanceState) + callback('onCreate') + } + + override onResume(params : UniActivityParams) { + console.log('UTSAcvitiyLifeCycle', 'onResume', params) + callback('onResume') + } + override onPreResume(params : UniActivityParams) { + console.log('UTSAcvitiyLifeCycle', 'onPreResume', params) + callback('onPreResume') + } + override onStart(params : UniActivityParams) { + console.log('UTSAcvitiyLifeCycle', 'onStart', params) + callback('onStart') + } + override onPreStart(params : UniActivityParams) { + console.log('UTSAcvitiyLifeCycle', 'onPreStart', params) + callback('onPreStart') + } +} +export class UTSAcvitiyKeyEventCallback extends UniActivityKeyEventCallback { + constructor() { + super() + } + override onKeyDown(params : UniActivityParams, keyCode : Int, event : KeyEvent | null) { + console.log('UTSAcvitiyKeyEvent', 'onKeyDown', params, keyCode, '' + event) + callback('onKeyDown') + } + override onPreKeyDown(params : UniActivityParams, keyCode : Int, event : KeyEvent | null) { + console.log('UTSAcvitiyKeyEvent', 'onPreKeyDown', params, keyCode, '' + event) + callback('onPreKeyDown') + } + override onKeyLongPress(params : UniActivityParams, keyCode : Int, event : KeyEvent | null) { + console.log('UTSAcvitiyKeyEvent', 'onKeyLongPress', params, keyCode, '' + event) + callback('onKeyLongPress') + } + override onPreKeyLongPress(params : UniActivityParams, keyCode : Int, event : KeyEvent | null) { + console.log('UTSAcvitiyKeyEvent', 'onPreKeyLongPress', params, keyCode, '' + event) + callback('onPreKeyLongPress') + } +} + +export class UTSActivityWindowCallback extends UniActivityWindowCallback { + constructor() { + super() + } + override dispatchPreKeyEvent(params : UniActivityParams, event : KeyEvent | null) { + console.log('UTSActivityWindowCallback', 'dispatchPreKeyEvent', params, '' + event) + callback('dispatchPreKeyEvent') + } + override dispatchKeyEvent(params : UniActivityParams, event : KeyEvent | null) { + console.log('UTSActivityWindowCallback', 'dispatchKeyEvent', params, '' + event) + callback('dispatchKeyEvent') + } + override onWindowAttributesChanged(params : UniActivityParams, attrs : WindowManager.LayoutParams) { + console.log('UTSActivityWindowCallback', 'onWindowAttributesChanged', '' + attrs) + callback('onWindowAttributesChanged') + + } + override onAttachedToWindow(params : UniActivityParams) { + console.log('UTSActivityWindowCallback', 'onAttachedToWindow', params) + callback('onAttachedToWindow') + + } + override onPanelClosed(params : UniActivityParams, featureId : Int, menu : Menu) { + console.log('UTSActivityWindowCallback', 'onPanelClosed', featureId, menu) + callback('onPanelClosed') + + } + override onWindowStartingActionMode(params : UniActivityParams, callback : ActionMode.Callback | null) { + console.log('UTSActivityWindowCallback', 'onWindowStartingActionMode', callback) + callback('onWindowStartingActionMode') + } + override onProvideKeyboardShortcuts(params : UniActivityParams, data : MutableList | null, menu : Menu | null, deviceId : Int) { + console.log('UTSActivityWindowCallback', 'onProvideKeyboardShortcuts', data, menu) + callback('onProvideKeyboardShortcuts') + } + override onPreWindowAttributesChanged(params : UniActivityParams, attrs : WindowManager.LayoutParams) { + console.log('UTSActivityWindowCallback', 'onPreWindowAttributesChanged', attrs) + callback('onPreWindowAttributesChanged') + } + override onPrePanelClosed(params : UniActivityParams, featureId : Int, menu : Menu) { + console.log('UTSActivityWindowCallback', 'onPrePanelClosed', featureId, menu) + callback('onPrePanelClosed') + } +} + +export class UTSActivityCallback extends UniActivityCallback { + constructor() { + super() + } + override onBackPressed(params : UniActivityParams) { + console.log('UTSActivityCallback', 'onBackPressed', params) + callback('onBackPressed') + } + override onPreBackPressed(params : UniActivityParams) { + console.log('UTSActivityCallback', 'onPreBackPressed', params) + callback('onPreBackPressed') + } + + override onRequestPermissionsResult(params : UniActivityParams, requestCode : Int, permissions : MutableList, grantResults : IntArray) { + console.log('UTSActivityCallback', 'onRequestPermissionsResult', params) + callback('onRequestPermissionsResult') + } + +} + +export class UTSActivityComponentCallback extends UniActivityComponentCallback { + constructor() { + super() + } + override onConfigurationChanged(params : UniActivityParams, newConfig : Configuration) { + console.log('UTSActivityComponentCallback', 'onConfigurationChanged', params, '' + newConfig) + callback('onConfigurationChanged') + } + override onPreConfigurationChanged(params : UniActivityParams, newConfig : Configuration) { + console.log('UTSActivityComponentCallback', 'onPreConfigurationChanged', params, '' + newConfig) + callback('onPreConfigurationChanged') + } +} \ No newline at end of file