android TV端如何读取微信网页版二维码显示生成一张图片

今天讲下TV端接二维码遇到的一些问题,由于是在微信平台申请的是以网站那种形式申请的,而不是服务号申请的,所以客户端显示的二维码是以网页的形式展现的,网页是用WebView加载实现的,但是我们的界面是这样的,


当然这背景上还有显示其他文字信息,我就没在这说明了,为什么这图片中间要做成透明的呢?由于WebView加载显示二维码其实是一个网页,而不是一张图片,所以当时就想到了这个方法,当时在做的过程中也遇到很多适配的问题,大部分都解决了,还是有小部分盒子适配确实不好做,所以这个版本产品要说改这个二维码,当时心想怎么弄,后来想到了一个办法,就是先读取二维码的连接,当然这个二维码的连接是来自后台给你的,因为这个要考虑到回调地址,这个回调地址就是你扫描了后微信会通知自己的服务器,然后自己请求到服务器拿当前扫描客户的微信数据,比如昵称,头像,城市等...,第二步是把网页版显示二维码通过IO把它读出来后,去摘取显示二维码的地址,当然这个地址不是以什么.jgp或者.png格式,读取出来存放在本地,这个文件以.jgp为后缀名,然后再把这个图片读取出来,这个时候webview就可以把它隐藏,这样就能做到适配,因为二维码显示的不再是网页版了而是一张图片,现在贴部分代码:

webview相关设置:

webview.addJavascriptInterface(new InJavaScriptLocalObj(), "java_obj");
webview.setFocusable(false);
webview.setFocusableInTouchMode(false);//webview失去焦点防止按下键  网页背景出来
webview.setWebChromeClient(new WebChromeClient() {
    @Override
    public void onProgressChanged(WebView view, int newProgress) {
        super.onProgressChanged(view, newProgress);
    }
});
myWebViewClient mWebViewClient = new myWebViewClient();
webview.setWebViewClient(mWebViewClient);
WebSettings webSettings = webview.getSettings();
webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);
webSettings.setJavaScriptEnabled(true);//支持js必须设置
webSettings.setUseWideViewPort(false);
webSettings.setLoadWithOverviewMode(true);
webSettings.setSupportZoom(false);
webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); //取消滚动条白边效果
webSettings.setBuiltInZoomControls(false);
webSettings.setSupportZoom(false)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值