赞助商
立即赞助

踩过许多坑后,送你这份H5交互的页面跳转方式总结

交互设计3年前 (2021)发布 流光
2K 0 0

今了的 HTML5 项目,遇到了很多坑。这过程中学到了一些之不具备的知识,所以这篇文章就简单分享一下这方面的话题。

传统的MPA

首先,一比较古老的东,叫 MPA。

MPA 全称是 Multi-page Application,意思是个应用(站)由多个完 html 构成。用户在页 1 击跳转,需要服务端请求页 2,请求成功后渲染。而用户返回时,相于是击了浏览返回,页退回到前历史记录,并新加载出来。

在这的模式下,页面间切换慢、不流畅的问题比较突出,尤其是在移动端。

同时,它还产生几个小问题:

  • 跳转动画:页面间的跳转无法实现转动画效果。
  • 果前一个页比长,用户滑动到页面比靠下方的位置点击,返回时,页面无法默认停留在原位置。
  • iOS 右滑返产生问题,从页面 1 跳转到页面 2,再从页面 2 跳转到页面 3,右滑返,会直接到页面 1 前的页。

SPA

随着对移动端体验需求的提高以及术的进步,另一种模式 SPA(Single-page Application)逐渐成为主流。

SPA 简单来说,就是原来在 MPA 中的个 html,现在被放在一个 html 中,并被分成若干个段。跳转、返回的质变成分段的「隐藏」与「显示」。跳转不需要反复对服务端进行请求,从而使得页面与页面之间切换更加快速流畅。

在这样的机制,跳转与返全由代码控制,可通过代码定义页面转场的效果、返。

设转场动画时,我们需留意的导航栏 Native 的还 HTML5 的。如果导航栏 Native 的,那 HTML5 页面不包括导航栏,它相当于网页外的元素,不转场效果的设范围内。

WebView

 HTML5 的跳转,就不得不 WebView。简单,WebView  App 中用于显示 web 内的器。文提到的 MPA  SPA,都装了这叫 WebView 的器中。

用户击页元素进跳转,除了前两,有第三:新打开 WebView 。在这样下,跳转本质是 HTML5「告诉」Native,由 Native 执打开新 WebView,并在新 WebView 加载页。

因为 Native 的机制,开新 WebView 的同,之前的 WebView 会被然、完整地保留。所以这,之前的个问题就变为:

  • 跳转动画:页跳转动画由 WebView 跳转动画来决定。
  • 返回后页面停留在位置:完美支持。
  • iOS 右滑返回:完美支持。

不过需要注的地方是,开新 WebView 是一个资源消耗比较大的操作。如果在计一个流程,需要比较多的续使用这种方式,需要和研发同学进行充的沟通。

比较特殊的Replace

前述的三种跳转,都会产生历史记录。MPA、SPA 的历史记录是在 HTML5 中产生,新开 WebView 中的记录是在 Native 中产生。

在 MPA 或 SPA 中,果跳转时使用 Replace 方法,它用新页面替换之前的页面,历史录中没有之前页面的录。

这是一种特殊的跳转方式,在设计一些可逆的流程时可考虑使。

多页面回退

了解了上述的几种机制后,我们来看一个小的应场景──多页面退。

我们实际业务中,常会这样的需求。假设我们 1、2、3 三页组的一流程,页面 3 「完」按钮点击回到页面 1。不同的交互模式下,实这样的跳转不同的机制。

1. SPA模式下的常跳转

这种模式 3 页面都一 WebView 中。点击页面 3 中的「完」按钮,回退 -2 ,即回退 2 历史记录,到页面 1。

踩过许多坑后,送你这份H5交互的页面跳转方式总结

2. 打开WebView

打开 WebView 又分种方式。

如果我们把 3 页面,拆分到 2  WebView 中,如下图,点击完按钮,即关闭自身所的 WebView。

踩过许多坑后,送你这份H5交互的页面跳转方式总结

同样打新的 WebView,如果我们按如下图的方法拆分会稍微复杂。这时点击完按钮,首先关闭自身所的 WebView,当页面 2「意识」到自己重新被展时,自动退回 1 到页面 1。

踩过许多坑后,送你这份H5交互的页面跳转方式总结

每次打新的 WebView,这时点击完,回退的本质 HTML5「告诉」Native 关闭多 WebView。需特别注意的,HTML5 中实这种方式不天然具备的,它需 Native 具一次关闭多 WebView 的能力。所以我们设方案时,需了解清楚自家的 Native 否这样的能力。

踩过许多坑后,送你这份H5交互的页面跳转方式总结

总结

上,简单说了几种 HTML5 的跳转方式。这些跳转方式,没有绝对的对与错,我们在设计方案时,需要根据实际的务需求与技术的限制,来整体考虑解决方案。

根据人验,也几点小帖士分享给家:

  • 前后逻辑交织复杂的单个页面,可考虑使 WebView 打开跳转。
  • 如果一任务型的流程,可以考虑将一任务流包一 WebView 中,任务内使用 SPA 跳转。不同的任务使用不同的 WebView。保持任务之间的关系清晰明了。
  • 设计上需要着表现页转场动画效,优先考虑使用 SPA 跳转。
  • 为防止流程过于复杂,尽量不要定义关闭、返回的行为。保持关闭为默认的关闭行为,保持返回为默认的返回行为。

欢迎关注作者微信公众号:「花生Design」

踩过许多坑后,送你这份H5交互的页面跳转方式总结

© 版权声明
您必须登录才能参与评论!
立即登录
暂无评论...

相关文章

缘起 前段时间应邀给部门内新入职的校招设计师讲一堂设计法则的基础课,作为交互设计师,交互设计定律肯定是绕不开的一个知识...
交互方法
Z Yuhan:作为一个经历了「全栈 -> 非科班 -> 海归学院派 -> BAT」的交互设计师,我也算是阅读和学习过各种类型的资...
交互原型
编者按:随着亚马逊、小米、阿里巴巴等大公司都推出了智能语音产品,如何为这类以语音交互为核心的智能产品做设计也成了一个...
交互设计
彻底的设计改版最好使用 A/B 测试来验证,而 MVT(多变量测试)则表示不同的 UI 元素之间是如何相互影响的,并支持对设计的渐...
A/B测试
网易 UEDC  – 崇书庆 :经常被人问起「如何入门交互设计」,也做过很多次解答,今天便系统地和大家聊聊。 提示:这篇文章会...
交互设计
从接触交互设计到现在也有一段时间,而这是第一次比较全面的接触游戏交互,网上也蛮少有游戏交互的实习体验,目前为猪厂用户...
交互设计
一个好的设计,要兼顾可视性和易通性。所谓可视性,就是让用户知道这个产品怎么用,怎么操作才是合理的。所谓易通性,就是要...
交互设计
讨论一个比较常见的问题。 读者: 呆呆,这个图的卡片列表里,标题用省略号合适吗? (因为原图涉及读者项目隐私,所以重画...
交互设计