前言
在开发项目时,有部分界面是H5界面,原本以为直接加载H5界面就能搞定,后来还是遇到参数互传问题了,然后网上意见不一,只好自己摸索,下面就给大家聊聊我遇到的问题~~~
1.先给大家看看成功之后的界面跳转:
解释一下:
界面跳转流程: 首页的限时特卖–>限时特卖的H5界面–>商品详情页.
(1)由App原生界面跳转
由首页的限时特卖进入显示特卖的H5界面:
直接将后台返回的H5链接加载到WebView界面,对大家来说肯定没有丝毫难度吧,在这里就不粘代码了
(2)从H5的商品列表页进入到商品详情页时需要商品的id,这就真正的涉及到与H5的交互了,看代码:
public class MyGoods {
Context context;
public MyGoods(Context context) {
this.context = context;
}
//该方法将暴露给js调用,打来商品详情页
@JavascriptInterface
public void getCall(String goodsid) {
Intent intent = new Intent(context, GoodsDetailsAct.class);
intent.putExtra("goods_id", goodsid);
context.startActivity(intent);
}
}
定义一个全局的类,在这个类里面只需要写一个Intent,打开商品详情页,并将id传过去;MyGoods中的方法使用@JavascriptInterface修饰,因此会将这两个方法暴露给JS脚本,则允许JS脚本通过MyGood来调用MyGoods里面的方法:
然后我自己封装了一个关于公共的加载WebView的类:
初始化完成之后作如下操作:
WVJBWebView.getSettings().setJavaScriptEnabled(true)