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

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

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

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

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

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

© 2021 V2EX