您的位置:首页 > 移动开发

android superWebView ----新的 Hybrid App 解决方案(集成总结)

2016-03-02 18:12 316 查看
莫欺少年穷。

对于现在的app开发,不得不说让人很揪心,不是开发者闹心,而是经理们惆怅。

用原生开发(native app),开发周期长,一般一个app做下来2-3个月。对于这么长的开发周期,后期版本迭代的麻烦程度,老板们已然忘却原生的流畅性,和更好的用户体验。

用H5开发(Web app ),开发周期大大缩短,一套(三端)做下来,1-2周就可以搞定,并且版本迭代不用重新打包。H5这么吊炸天,哪还有原生的存活可能,H5的用户体验和流畅度比原生的要渣。

那么完美的解决方案是什么呢,傻子都能想到,两者结合嘛,对,保留原生的流程和好的用户体验,保留H5快速开发特性,Hybrid App 诞生了。

1月份,APICloud 出了一套,据说是致力于提升用户体验改善移动设备webView体验差的整套解决方案。 看看,有木有吊炸天。点击查看superWebView的说明文档

怎么集成就不介绍了,直接看上面的文档飞机,集成只需要分分钟。

就简单介绍一下这两天使用上遇到的一些问题吧。

不得不吐槽,一个盈利的第三方,把客服的解答都作为盈利点。(没有在线客服,有技术论坛,发个问答贴,最好的结果就是等待一天,有客服回答你。。。如果你遇到疑难杂症,不是他们的VIP(几千RMB一个月),那就老实打电话吧(博主打了一个电话咨询,结果就是没解决))

1.未加载superWebView之前,就将需要数据传递给H5页面,用intent传参的方式。在跳转之前就将参数放在intent中,在H5代码中,用

[code]var json = api.appParam;


来获取到传值的内容,为json格式的字符串

2.在H5界面加载完成之后,用一些回调点击事件传递数据给H5。

重写

[code]onHtml5AccessRequest


方法。

H5界面先触发事件,由java代码捕获,再传入相应数据json串给H5。

[code]@Override
protected boolean onHtml5AccessRequest(WebViewProvider provider, UZModuleContext moduleContext) {
String name = moduleContext.optString("name");
//"requestEvent"与assets/widget/html/wind.html页面的发送请求相匹配
if("requestEvent".equals(name)){
JSONObject extra = new JSONObject();
try{
extra.put("session", plum_session_api);
}catch(Exception e){
;
}
//"fromNative"与assets/widget/html/wind.html页面的apiready中注册的监听相对应
sendEventToHtml5("fromNative", extra);
}
return true;
}
}


[code]apiready = function(){
//监听名为"fromNative"的事件,该事件来自Native
api.addEventListener({
name:'fromNative'
}, function(ret){
alert('收到java代码传入:\n' + JSON.stringify(ret));
});
var json = api.appParam;
document.getElementById("testJson").innerHTML=json;
};
function requestEvent(){
api.accessNative({
name: 'requestEvent'
});
}


整个过程,原生开发人员,只需要将app框架搭好,其它的功能逻辑,直接交给前台出一整套的H5解决方案,然后往App中嵌套。

今天出了一个页面,因为加载的是app本地的H5,JS,CSS,所以整体的流畅性还是挺好的。

转载请注明出处:http://blog.csdn.net/qq_33078541?viewmode=contents

如集成过程中出现问题,欢迎回复咨询~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: