3. Prompt弹窗
Prompt弹窗是在1995年javascript诞生时和Alert弹窗、Confirm弹窗一起出现的三大弹窗方式之一,但命运轨迹却完全不同。
我们先来分析一下Prompt弹窗不同于另外两种弹窗形式的主要特点:Prompt弹窗也是模态阻断用户其他交互行为,要求用户首先完成当前弹窗的任务,输入系统要求的信息,或选择不输入任何信息,选择“取消”按钮解散弹窗。Prompt弹窗的运行机制如下:
要测试Prompt控件的运行效果,可以在浏览器地址栏输入如下代码:
javascript:if(prompt("早饭吃了什么")=='面包'){alert("面包有益身体健康")}else{alert("很遗憾")}
相较于另外两种弹窗形式的不可或缺和应用广泛,Prompt弹窗似乎难以逃避消亡的最终命运,在PC端的Native Software和浏览器里,基本上已经难觅其踪迹,在移动端除了一些操作系统级的交互上偶尔可以见到这个控件之外,移动App里基本上已经难觅其踪迹。
除了这种原生控件,我们还能见到很多类似的变体,都算是Prompt控件的延伸和扩展:
造成Prompt弹窗逐渐消亡的原因很多,初步分析下来主要有以下几个因素导致Prompt逐渐式微:
1. 原生的Prompt弹窗应用场景很少,而大部分可以使用的场景都可以被其他形式的交互控件替代。
随着移动互联网技术的发展,几种主要的移动应用类型已经基本定型,同时这些应用内部的流程页面也已经基本标准化,登录、注册、设置、购买、预订、添加、删除都已经有标准的UI控件支持,在这种情况下,强提醒、模态显示的Prompt就很难再有用武之地了。
2. 原生的Prompt弹窗校验机制比较弱,很难控制用户输入信息的类型,造成脏数据和服务器被hack风险。
Prompt控件的先天不足决定了用户输入数据很难被控制,虽然可以进行简单的本地校验,但这种开放性输入框的用户体验非常差。
3. 弹窗形式的不断发展和变化拓展和模糊了几种弹窗形式的边界。
下面这个登陆界面和验证码弹窗,是否属于Prompt弹窗的延伸,还是其他控件的延伸?这些界定已经随着弹窗形式的不断发展变化越来越模糊,很多时候我们只是拿这些界面的功能来标注和称呼,如“登录弹窗”,“验证码弹窗”,而不再考虑它是从那种基础弹窗形式衍生出来的,又或者,从这几大类弹窗形式诞生之初,这种分类方式就不是按照很科学的方式来界定的。
4. iOS通过使用Prompt弹窗来界定系统级交互和App级交互的区别
iOS使用原声的Prompt弹窗样式来隐喻系统级的交互,但这种方式也开始受到黑客和钓鱼应用的模仿,目前已经出现很多钓鱼网站模仿iOS原生Prompt弹窗控件样式来获取用户账号密码,而用户之所以中招,很大程度上也是因为受到这种形式隐喻的暗示影响,所以苹果要么加强监管审核,要么可能就要考虑更加安全可控的交互方式,毕竟这种原生的Prompt弹窗的伪造成本太低了。
所以,从某种意义上来说,也可以认为Prompt弹窗并没有式微,而是随着技术发展和需求提升以多姿多彩的扩展和变异的形式生存下来,只是这些控件都不再以Prompt为名,但他们身上都有着Prompt弹窗的某些特点和烙印。