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

2020 年 9 月 17 日
 gromit1337
无论里面的路由层级进入到多少了,一按安卓的虚拟返回键或者手势返回都直接关闭 webview,回到 App 了,iOS 没有出现,只有 Android 这样,路由用的是 hash 模式,是路由模式的原因吗?
4664 次点击
所在节点    Vue.js
13 条回复
HongJay
2020 年 9 月 17 日
需要原生处理
yikuo
2020 年 9 月 17 日
是因为 Android 的 app 没有处理返回事件
gromit1337
2020 年 9 月 17 日
@HongJay #1
@yikuo #2
好的,确认不是我这边的原因就可以了,感谢!
OHyn
2020 年 9 月 17 日
客户端的问题,可以处理。
fansangg
2020 年 9 月 18 日
叫 Android 重写 onbackpressd 判断是否可以 back
pultako
2020 年 9 月 18 日
原生拦截 back 按键也就几行代码的事情
gromit1337
2020 年 9 月 18 日
@HongJay #1
@OHyn #4
@fansangg #5
vueRouter 的 history 模式是用的 html5 的 history API,是不是也能解决这个问题?
Nuttertoo1s
2020 年 9 月 18 日
@gromit1337 还是交给原生做吧,很快的。webview 有接口能判断网页是否可以返回,然后配合拦截 back 按键可以实现不错的效果体验
koor
2020 年 9 月 18 日
单页应用这个要原生处理的,因为只有一个 webview,关了就没了
OHyn
2020 年 9 月 18 日
@gromit1337 不行,这是那个返回按钮的定义问题,无论是 history mode or hash mode,都是往 history 里加记录罢了,阻止不了这个返回按钮的行为。
96412hj
2020 年 9 月 18 日
估计客户端不想做,可能有历史遗留问题,也可能是💩山
gromit1337
2020 年 9 月 18 日
@96412hj #11 是的!最后我还是苦逼的改成一个个 html 页面了!
96412hj
2020 年 9 月 19 日
@gromit1337 #12 你还是太好说话了,你就咬定是客户端的问题,前端可以改,但是得花费很长时间,安卓只需要加几个判断,甩给他

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/708072

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX