Open Xiaobaishushu25 opened 3 weeks ago
话说这个点是会影响到你这边的什么需求或者功能吗,研究了一下,目前没找到方法取消这个。我自己也尝试了下,并不影响我自己一些app 从桌面回到app的状态。
话说这个问题是会影响到你这边的什么需求或者功能吗
你好,我试着用tauri做了一个手机应用,但是我发现每次回到桌面后在重新点击app后,我发现
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
}
整个函数都会重新运行,等于是重新从头渲染整个app,而且此时再从js调用rust函数会报错:
https://github.com/weiraneve/tauri-mobile-demo/assets/76581880/c43b84ec-e7d2-4c88-a672-2b5f4265ac28
我目前只好在退出app后直接强制鲨掉。 其实我原本是用flutter做的,我想找的是tauri有没有类似这个生命周期的东西:
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
super.didChangeAppLifecycleState(state);
switch (state) {
case AppLifecycleState.inactive: // 处于这种状态的应用程序应该假设它们可能在任何时候暂停。
break;
case AppLifecycleState.resumed: //从后台切换前台,界面可见
//addLog("到前台了");
checkConnect();
break;
case AppLifecycleState.paused: // 界面不可见,后台
//addLog("应用处于不可见状态 后台======");
break;
case AppLifecycleState.detached: // APP结束时调用
sendMessage(CloseMessage());
break;
case AppLifecycleState.hidden:
// TODO: Handle this case.
}
}
tauri 2.0 里我暂时没看到rust相关的API控制这个原因,不过你可以在src-tauri
目录生成的android的gen
目录里,对于activity进行一些修改呢。我在tauri2官网里找到了一些关于安卓的生命周期控制的文如下
https://v2.tauri.app/develop/plugins/develop-mobile/#onnewintent
tauri 2.0 里我暂时没看到rust相关的API控制这个原因,不过你可以在
src-tauri
目录生成的android的gen
目录里,对于activity进行一些修改呢。我在tauri2官网里找到了一些关于安卓的生命周期控制的文如下 https://v2.tauri.app/develop/plugins/develop-mobile/#onnewintent
感谢,我想问问就比如返回到桌面在点击app,你的是会完全重新运行整个app吗,比如我视频里面的输入的验证码,输入几个返回桌面后在点击回来,就完全都没有了,需要重新从头输入.
我目前的demo逻辑比较简单,我就加了个新路由页面也试了试,暂时没有出现热启动回来清除状态的情况
我目前的demo逻辑比较简单,我就加了个新路由页面也试了试,暂时没有出现热启动回来清除状态的情况
我把你项目拉下来跑了一下,回到桌面再点击app重新打开总是报错,不过确实保存了状态,我在研究一下.
06-11 14:01:05.297 11701 11701 I ImeTracker: com.weiran.app:14f363d: onRequestHide at ORIGIN_CLIENT_HIDE_SOFT_INPUT reason HIDE_SOFT_INPUT_BY_INSETS_API
06-11 14:01:05.299 11701 11701 I ImeTracker: com.weiran.app:f06e4d77: onHidden
06-11 14:01:09.584 11701 11701 W WindowOnBackDispatcher: sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda17@1ef4b38
06-11 14:01:10.506 11701 11739 I RustStdoutStderr: thread '<unnamed>' panicked at C:\Users\Xbss\.cargo\registry\src\rsproxy.cn-0dccff568467c15b\ndk-context-0.1.1\src\lib.rs:87:5:
06-11 14:01:10.506 11701 11739 I RustStdoutStderr: assertion failed: previous.is_none()
06-11 14:01:10.506 11701 11739 I RustStdoutStderr: note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
06-11 14:01:10.522 11701 11739 I RustStdoutStderr: fatal runtime error: failed to initiate panic, error 5
06-11 14:01:10.718 11701 11739 I RustStdoutStderr: [0611/140110.717865:ERROR:elf_dynamic_array_reader.h(64)] tag not found
--------- beginning of crash
06-11 14:01:10.740 11701 11701 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 11701 (com.weiran.app), pid 11701 (com.weiran.app)
我发现每次回到桌面在重新打开app后,整个
函数都会重新运行。