咨询电话:
15628812133
24
2019/08

在apiclound中如何使用imagecache来缓存图片

发布时间:2019-08-24 16:44:07
发布者:你瞅啥
浏览量:
0

在前端开发中,app开发往往是不可忽视的重要环节,像是我们通常会借助apicloud平台来开发app。在APP的开发中图片的加载作为用户体验一个重要标准,往往也是客户衡量app体验好坏的一个指标,今天小编就来分享一下自己的开发心得。

1.gif

相信每个开发者都希望自己app的图片如上图一样能够快速的打开图片,而不是每次都需要向服务器不断地请求数据不停地转圈。在apiclound中,有很多是关于数据存储的,其中具有关于图片的imagecache.

这次我们还是先次官方是如何说的

图片缓存

imageCache({params}, callback(ret, err))

params

url:

  • 类型:字符串

  • 默认值:无

  • 描述:图片远程地址

encode:

  • 类型:布尔

  • 默认值:true

  • 描述:(可选项)是否对url进行编码。默认或传true时,Android将始终对url编码,而iOS只有在url不合法(如存在中文字符)的时候才进行编码。如果url中有特殊字符需要编码的,建议先在js层进行编码,然后此参数传false。

policy:

  • 类型:字符串

  • 默认值:default

  • 描述:(可选项)缓存策略

  • 取值范围:

default                        //默认为 cache_else_networkcache_else_network             //若服务器上没有更新,则使用缓存no_cache                       //不使用缓存,始终从服务器获取cache_only                     //当缓存存在时,只从缓存中读取

thumbnail:

  • 类型:布尔类型

  • 默认值:true

  • 描述:(可选项)使用缩略图,底层将根据当前系统及设备性能,返回最优的缩略图,有利于提高应用运行及渲染效率

tag:

  • 类型:字符串

  • 默认值:无

  • 描述:(可选项)标识信息,将在回调中返回

callback(ret, err)

ret:

  • 类型:JSON 对象

  • 内部字段:

{
    status:true,          //是否成功,布尔类型
    url:''                //图片本地存储路径,若下载失败,则返回传入的url,字符串类型
    tag:''                //标识信息,字符串类型}
    
    以上是官方的说法,小编的理解是imagecache是一个可以把http或者https或者widget地址直接转为手机上的地址的一个工具,它所存储的位置:
    Android的默认沙箱位置:sdcard/UZMap/appId    iOS的默认沙箱位置:Documents/uzfs/appId;
    当然我们也可以通过config文件来修改默认存储位置
    像是上图的案例,代码如下

5.jpg

本案例中,先是通过ajax通过get的方法获取图片,如果存在图片的话(响应值为200),则调用图片imagecache,先把服务器的图片路径转为手机存储的路径并同时缓存图片,但是这里存在问题,因为这里一共三张图片,如果其中有一个图片没有调到,这样就会有空的很尴尬,所以设置了两个函数  初始值都是1,这种的有关分为两种  一个是图片没有与服务器建立通信,另一个是没有该图片资源,如果三个图片都没有的话,就会执行刷新页面。

app案例地址:

image.png

或者在appstore里直接搜索“易挖”

或者appstore里搜索易挖1566524638040_054bac3225f3854b76a7821ce376fc3.jpg

好了,以上就是小编今天所分享的文章,如果想关注更多小编的文章就来文汇软件关注小编吧!



返回列表