当下主流 APP , Hybrid app 中需要熟练掌握的交互
2014年10月29日,万维网联盟宣布,经过接近8年的艰苦努力,该标准(HTML5)规范终于制定完成。接着,整个移动端开发领域开始了一场翻天覆地的改革变迁,主要「受益」者, ios , Android.
现如今的形势无疑使这个行业的门槛抬的非常高,我们都知道以前会写几个 demo 工作就没问题了,这是移动开发正火热的时期。之后接着有很多同学的自学效率不错,凭着一己之力,培训也算,每年大量新人涌入这个高薪行业!
前两天吃饭的时候 HR 告诉我说,他说两年前招 Android 的时候给出的价格是 15k,而且还招不到,如今 10 都不愿意给了,发一个职位来的人排着队面试 !可见移动行业的现状的确是跟之前的差距拉的太大。
包括我刚出来的时候基本没有接触过 WebApp 领域的东西,更不会去娴熟的利用 WebView 做着各种交互,以至于找工作就费了很大的力气,如今,Hybrid App 已然是绝对的主流地位!
什么是 Hybrid App
Native App(原生界面)+ WebApp (基于 H5 的 WebView 网页)== Hybrid App(混合型)
那这样一个公式就说的很清楚了,所谓的 Hybrid 就是原生与网页混合开发,有时候原生界面调 H5 页面,有时 H5 网页又来调原生,为什么会衍生出这种开发模式呢?H5 可跨平台,一套页面 ios 和 android 公用,开发成本较低,再者网页不占内存等等,一张图来稍微概括:
那么这样用户体验就不好了!凡是网页时有 js 弹框的地方,我们都可以用在 setWebChromeClient(new WebChromeClient() {} 中 重写父类的 onJsAlert() 来讲之转换为原生弹框。
接下来我们打一个断点来追踪一下网页需要什么参数让我们传,关于网页服务端的所有接口都是这样来看参数的,所以你看好了!
funName.png可以看到,我在没有填密码的时候点击了修改密码,它就接着执行了这个方法,并且有一个 message 参数显示的是提示信息,那么我们直接就将这个 message 设置到我们原生弹框中所需要的消息就 OK 了!记住,后面的接口方法都是这么判断,再说一遍!
重点来了,将设置应用到 WebView 中去。
<com.lansum.eip.webview.WebViewController
android:id="@+id/main_webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
还记得上面类第一行的包吧!没错,就是把这个类的包路径直接添加到布局中,像添加自定义布局的方式一样,现在起我们的 WebView 就已经具备了代码中所有的设置!
关于这个类(WebViewController),是我们专门用于处理 WebView 的类,如何去搭配下一个重头戏的类(HtmlMessageForLocal 类)!作用,本地与WebView交互类,根据点击的WebView位置服务端发送相应接口,本地去实现这些接口!非常重要!
此次就到这里,我们下篇文章继续,揭开这个 HtmlMessageForLocal 类的真实面目,并与我们的 WebViewController 类搭配起来完成所有网页的处理,此次分享落幕!