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