V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OkabeRintaro
V2EX  ›  程序员

一个 uniapp 项目,想在切入后台的时候,主动关闭应用,请问...

  •  
  •   OkabeRintaro · 2022-09-05 09:16:03 +08:00 · 2007 次点击
    这是一个创建于 591 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问下,目前在做一个 uniapp 项目,有个 bug: 就是苹果 App 端,当应用挂在后台一段时间之后,底部的导航栏会突然往上悬浮一些距离,非常离谱,但是定位不到问题原因所在,这个问题也只有苹果端出现了,所以想着在应用挂到后台超过某段时间之后,直接主动关闭应用....... 怎么样才可以实现呢?

    8 条回复    2022-09-05 15:34:55 +08:00
    PrtScScrLk
        1
    PrtScScrLk  
       2022-09-05 09:23:28 +08:00
    setTimeout 以后调用 plus 的关闭应用 or 重启应用 plus.runtime

    https://www.html5plus.org/doc/zh_cn/runtime.html
    DCELL
        2
    DCELL  
       2022-09-05 09:25:08 +08:00
    我琢磨着,这应该也是一个 H5 吧,用 safari 调试下样式不就知道了?
    marcong95
        3
    marcong95  
       2022-09-05 09:25:09 +08:00
    iOS 端理论上好像 app 是不能干涉应用关闭的。如果是用页面的自绘导航栏的话,有条件建议换成原生的。uniapp 的页面高度好像有 bug ,如果确实不方便换成原生导航栏,你可以在启动时记录一个屏幕高度,然后用 top: xxx 这种做绝对定位,别用 bottom: 0 这种
    horseInBlack
        4
    horseInBlack  
       2022-09-05 09:29:09 +08:00
    uni-app 生命周期里有个应用隐藏到后台的生命周期钩子 onHide
    https://zh.uniapp.dcloud.io/collocation/App.html#applifecycle

    触发这个钩子以后加个定时器然后销毁组件吧
    yuuko
        5
    yuuko  
       2022-09-05 10:19:00 +08:00   ❤️ 1
    这个貌似是 safari 的 bug ,之前也有人报告过,当代 IE
    okakuyang
        6
    okakuyang  
       2022-09-05 13:52:14 +08:00
    这个有点像典型的安全区问题,webview 会根据安全区行为调整整个视口的高度。没接触过 uniapp 不好说。
    nekochyan
        7
    nekochyan  
       2022-09-05 14:37:44 +08:00
    我记得之前是直接调用原生方法,里面直接调用 abort();就可以了
    OkabeRintaro
        8
    OkabeRintaro  
    OP
       2022-09-05 15:34:55 +08:00
    @horseInBlack 可以杀掉整个应用吗? 想要应用级的 不是组件级的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3126 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:24 · PVG 22:24 · LAX 07:24 · JFK 10:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.