Agenweb的使用以及遇到的问题

Android开发必不可少的就是和H5做交互,其中出现问题比较多的就是上传图片、支付的交互;

之前使用腾讯x5的第三方,在打包后经常出现无法正常返回图片,H5展示不了图片;

百度谷歌很多都是在适配不同的系统,来解决这个问题,但是部门机型还是不能解决;

使用AgentWeb后,基本都能够实现,除了第一次选择文件夹会不知道在哪里,其他暂时没发现什么问题;

AgentWeb支持androidx和android,可以根据不同项目进行引用;

AgentWeb:git地址

需要注意的点:

1、方法替换

public boolean shouldOverrideUrlLoading(WebView webView, String url)已经弃用;

替换方法->

public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest request) 

对应url可以通过以下调用:

String url=request.getUrl().toString();

2、微信支付遇到的问题

在H5支付唤起APP时,提示:商家存在未配置的参数,请联系商家解决;

需要设置Referer:

示例代码:

public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest request) {

String url = request.getUrl().toString();

    if (url.startsWith(StringConfig.WEIXIN)) {

payType =PAY_WECHAT;

        gotoActionApp(url);

return true;

    }else if (url.contains(StringConfig.WEIXIN_PAY)) {

Map extraHeaders =new HashMap();

        if (page ==1) {

//不同界面有可能需要设置的referer不一样,根据自己的情况来做判断

//xxx是对应的referer url;

extraHeaders.put(StringConfig.REFERER, xxxx);

        }else {

extraHeaders.put(StringConfig.REFERER, xxx);

        }

webView.loadUrl(url, extraHeaders);

return true;

    }else if (url.startsWith(StringConfig.ALI_PAY)) {

payType =PAY_ALIPAY;

        gotoActionApp(url);

return true;

    }else {

return false;

    }

}


private void gotoActionApp(String url) {

try {

//打开本地App进行支付

            Intent intent =new Intent();

            intent.setAction(Intent.ACTION_VIEW);

            intent.setData(Uri.parse(url));

            startActivity(intent);

        }catch (ActivityNotFoundException e) {

        }

}


public static final StringWEIXIN ="weixin://";

public static final StringWEIXIN_PAY ="wx.tenpay";

public static final StringALI_PAY ="alipays://";

public static final StringREFERER ="Referer";


AgentWeb具体API需要到git上看,以上纯属个人学习经验。

你可能感兴趣的:(Agenweb的使用以及遇到的问题)