H5 跳转web view固定页面

该博客介绍了如何在H5中截取特定格式的URL,通过解析JSON参数,实现在WebView中触发原生页面的跳转。主要涉及到的方法包括WebViewClient的shouldOverrideUrlLoading方法,用于拦截页面跳转,并根据URL前缀判断是否需要进行处理。同时,使用Gson库解析JSON字符串,获取所需参数,进而调用相应的方法进入不同的原生页面。

截取跳转的url 解析json串,跳转native

wv_news.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        include.setVisibility(View.GONE);
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
    }

    //webview 拦截页面跳转
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.startsWith("cn.com.greatchef://?params=")) {
            //截取剩余的字符串
            String replace = url.replace("cn.com.greatchef://?params=""");
            SuyanLog.i("json串", replace);
            //解析跳转
            H5ToNative.parseNewsInfoJson(replace, NewsDeteilActivity.this);
        }
        return super.shouldOverrideUrlLoading(view, url);
    }
});


public class H5ToNative {
    public static void parseNewsInfoJson(String result, Activity mActivity) {


        try {

            // Toast.makeText(getApplicationContext(), result, 0).show();
            Gson gson = new Gson();

            // 不是下拉加载更多
            PushInfo.Custom custom = gson.fromJson(result, PushInfo.Custom.class);

            String des = custom.des;
            String skuid = custom.skuid;
            String link = custom.link;
            if ("foodview".equals(des)) {
                //进入菜品详情页面
                EnterClass.enterFoodDetil(skuid, mActivity);

            }
           


        } catch (Exception e) {
            //  Toast.makeText(this, "解析数据失败", Toast.LENGTH_LONG).show();

        }


    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值