gromit1337
V2EX  ›  Vue.js

在原生 App 里嵌入的 Vuejs 页面,一返回就直接到 app 了

  •  
  •   gromit1337 · Sep 17, 2020 · 4734 views
    This topic created in 2237 days ago, the information mentioned may be changed or developed.
    无论里面的路由层级进入到多少了,一按安卓的虚拟返回键或者手势返回都直接关闭 webview,回到 App 了,iOS 没有出现,只有 Android 这样,路由用的是 hash 模式,是路由模式的原因吗?
    Supplement 1  ·  Sep 18, 2020
    "H5 应该有兼容的方法,你看一下" ,客户端把问题抛给我了
    13 replies  •  2020-09-19 09:26:03 +08:00
    HongJay
    HongJay
    Sep 17, 2020
    1
    需要原生处理
    yikuo
    yikuo
    Sep 17, 2020 via Android
    2
    是因为 Android 的 app 没有处理返回事件
    gromit1337
    gromit1337
    OP
    Sep 17, 2020
    3
    @HongJay #1
    @yikuo #2
    好的,确认不是我这边的原因就可以了,感谢!
    OHyn
    OHyn
    Sep 17, 2020 via Android
    4
    客户端的问题,可以处理。
    fansangg
    fansangg
    Sep 18, 2020
    5
    叫 Android 重写 onbackpressd 判断是否可以 back
    pultako
    pultako
    Sep 18, 2020
    6
    原生拦截 back 按键也就几行代码的事情
    gromit1337
    gromit1337
    OP
    Sep 18, 2020
    7
    @HongJay #1
    @OHyn #4
    @fansangg #5
    vueRouter 的 history 模式是用的 html5 的 history API,是不是也能解决这个问题?
    Nuttertoo1s
    Nuttertoo1s
    Sep 18, 2020
    8
    @gromit1337 还是交给原生做吧,很快的。webview 有接口能判断网页是否可以返回,然后配合拦截 back 按键可以实现不错的效果体验
    koor
    koor
    Sep 18, 2020
    9
    单页应用这个要原生处理的,因为只有一个 webview,关了就没了
    OHyn
    OHyn
    Sep 18, 2020
    10
    @gromit1337 不行,这是那个返回按钮的定义问题,无论是 history mode or hash mode,都是往 history 里加记录罢了,阻止不了这个返回按钮的行为。
    96412hj
    96412hj
    Sep 18, 2020
    11
    估计客户端不想做,可能有历史遗留问题,也可能是💩山
    gromit1337
    gromit1337
    OP
    Sep 18, 2020
    12
    @96412hj #11 是的!最后我还是苦逼的改成一个个 html 页面了!
    96412hj
    96412hj
    Sep 19, 2020
    13
    @gromit1337 #12 你还是太好说话了,你就咬定是客户端的问题,前端可以改,但是得花费很长时间,安卓只需要加几个判断,甩给他
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5015 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 09:08 · PVG 17:08 · LAX 01:08 · JFK 04:08
    ♥ Do have faith in what you're doing.