美文网首页Html
weex项目 图片验证码 点击切换

weex项目 图片验证码 点击切换

作者: 码个蛋 | 来源:发表于2019-03-21 10:26 被阅读15次

    话不多说,先上图:

    图片二维码验证思路:后台给了我们一个固定的url地址,通过这个地址,去请求图片。这个图片在网页端,刷新一下,图片就会不一样,而在weex中 :我们使用<image>标签的src属性去加载的时候,会出现点击之后并没有任何效果,图片还是原来的图片。初步分析,由于<image>标签中的src最终的加载是在原生中的ImageAdapter中的setImage中 我们自己实现的,那么说明,我们的图片加载库,可能存在缓存问题,经过查看Glide图片库的源码之后,发现在创建的时候,确实有默认的缓存策略,这个时候,需要在原生代码中修改Glide的缓存策略(我这里使用的是Glide图片加载框架)使用:

    Glide.with(WXEnvironment.getApplication())        //这个是weexSDK提供给我们的上下文对象

       .load(codeUrl)                                        //图片URL

       .diskCacheStrategy(DiskCacheStrategy.NONE)            //设置缓存策略为磁盘不缓存(禁用磁盘缓存)

       .skipMemoryCache(true)                                                //跳过内存缓存(如果只是设置禁用磁盘缓存,图片依然不能点击切换)

        .into(view);                                                                       //imageview

    注意 以上是原生代码,具体的实现位置为ImageAdapter的setImage方法内部。

    下面是weex代码:

        <div style="justify-content: center; align-items: center">

            <div style="justify-content: center; align-items: center; width: 400px; height: 300px; background-color: cornflowerblue" @click="loadUlr()">

                <image :src="codeUrl" style="width: 150px; height: 60px">

    <script>

        export default {

            data() {

                return {

                    // codeUrl:'',

                    codeUrl:"http://xxxx.xxxx.com/xxx/xxx/xxxxxx.jpg"

                    }

            },

            methods: {

                loadUlr(){

                    this.codeUrl ="";

                    setTimeout(() => {

                        this.codeUrl ="http://xxxx.xxxx.com/xxx/xxx/xxxxxx.jpg"

                    },0); //这个延时必须加,不加就不会触发image刷新。

                }

    }

    }

    </script>

    如果以上代码有什么问题,欢迎大家给予指出。

    相关文章

      网友评论

        本文标题:weex项目 图片验证码 点击切换

        本文链接:https://www.haomeiwen.com/subject/vlwfvqtx.html