DCloud_UNI_CHB
DCloud_UNI_CHB
  • 发布:2017-05-31 23:04
  • 更新:2019-06-22 18:02
  • 阅读:15212

原生版本图片轮播使用教程

分类:MUI

mui内置有H5版本的图片轮播组件,教程参考mui官网图片轮播;目前5+ runtime也支持了原生实现的图片轮播,先看最终效果:

相比MUI内置的H5模式的图片轮播,原生版本的图片轮播,具有如下特征:

  • 原生实现滑动切换,点击全屏预览,双指缩放,体验更佳
  • 暂不支持自定义点击事件,因此更适合类似商品详情场景,用户需要点击放大图片预览,而无需跳转的情况;
  • 暂不支持自动轮播,用户滑动时才会触发图片切换;若有自动轮播需求,建议使用mui框架实现的DIV版本图片轮播

实现方案

假设从A页面打开B页面,B页面希望使用原生图片轮播,则需要经过如下两个步骤。

新建webview时设置subNViews

A页面打开B页面的代码示例:


var webview_style = {  
    popGesture: "close"  
}  

webview_style.titleNView = { //配置原生标题  
    'backgroundColor': '#f7f7f7',  
    'titleText': this.innerHTML.trim(),  
    'titleColor': '#000000',  
    autoBackButton: true,  
    splitLine: {  
        color: '#cccccc'  
    }  
};  

webview_style.subNViews = [{ //配置图片轮播  
    id: 'slider-native',  
    type: 'ImageSlider',  
    styles: {  
        left: 0,  
        right: 0,  
        top: 0,  
        height: '200px',//轮播组件高度  
        position: 'static',//原生轮播组件跟随页面内容一起滚动  
        loop: true,//允许循环播放  
        images: [{//轮播图片地址  
            src: '_www/images/yuantiao.jpg',  
            width: '100%'  
        }, {  
            src: '_www/images/shuijiao.jpg',  
            width: '100%',  
        }, {  
            src: '_www/images/muwu.jpg',  
            width: '100%',  
        }, {  
            src: '_www/images/cbd.jpg',  
            width: '100%',  
        }]  
    }  
}];  

var webview = plus.webview.create("B.html", "slider_native_demo", webview_style);  
webview.show(aniShow,300);//直接显示

目标页面预留图片轮播组件的高度

因为原生绘制的图片轮播已占据了部分屏幕,因此需要在目标页面(本示例中即为B页面)中预留出同等高度的空白区域,否则,原生轮播组件会遮挡部分webview的内容,如下为示例代码:

.mui-content{  
    padding-top: 215px;  
}

在如上代码中,因为原生轮播组件已占据了200px固定高度,轮播组件和下面内容之间有15px的间距,故padding-top设置为215px

Hello MUI中体验

最新版的Hello MUI已集成了原生图片轮播的示例,在HBuilder 8.1.4+ 版本中即可体验,体验路径:
访问http://ask.dcloud.net.cn/article/12553下载最新版HBuilder,新建Hello mui项目,Hello MUI首页--> gallery slider(图片轮播)--> 默认样式(native模式)

6 关注 分享
ali Trust mackes 1***@qq.com 田云 漠

要回复文章请先登录注册

DCloud_UNI_CHB

DCloud_UNI_CHB (作者)

回复 守护 :
这个还是请教你们服务端的同事吧;先确保手机自带浏览器可以访问本地的HTTPS图片地址,然后再验证原生图片轮播的可访问性。
2017-07-11 17:41
守护

守护

回复 DCloud_UNI_CHB :
首先非常感谢你的回复!今天好好测试了一下,发现放在云服务器上https(已经或者CA证书,估计很重要)的地址可以访问,但是本地测试服务器(本地Tomcat服务器,https地址就不支持原生图片轮播)。请问怎么让本地测试服务器https地址也支持,怎么导入证书(不打包,因为就是普通的Ctrl+R测试)?

另外再问:本地Tomact测试服务器,自己生成的证书,https地址的话,目前ios手机无法访问任何地址?但是程序部署到阿里云上,在阿里云上Tomcat服务器,配置正确的CA证书,就可以访问(Android和IOS都可以访问),请问本地https服务器,如何让ios手机访问发布的地址?
2017-07-11 00:26
DCloud_UNI_CHB

DCloud_UNI_CHB (作者)

回复 守护 :
分别使用iOS、Android验证https地址的图片,均未重现问题;你新确认https图片可访问,然后再验证是否是特殊机型的问题
2017-07-10 15:20
守护

守护

之前服务器为http协议的,指定服务器上的图片路径可以轮播。地址如:http://www.xxx.com/upload/image1.jpg,等,但是服务器切换为https的就不能轮播,地址如:https://www.xxx.com/upload/image1.jpg,默认是白色背景,单击放大是黑色背景。
2017-07-09 20:05
GUNDAM

GUNDAM

回复 DCloud_UNI_CHB :
原生轮播加载网络图片多次点击关闭打开huilder基座闪退
2017-06-18 16:01
DCloud_UNI_CHB

DCloud_UNI_CHB (作者)

回复 8***@qq.com :
原生图片轮播暂不支持自动轮播,若有自动轮播需求,建议使用div版本
2017-06-18 13:58
GUNDAM

GUNDAM

过去h5轮播如果图片发生错误可以触发onerror事件 原生轮播如何触发类似事件?
2017-06-18 10:50
8***@qq.com

8***@qq.com

请问这个为什么不能自动轮播???
2017-06-17 11:21
Viccy

Viccy

为什么我的原生图片轮播,不会轮播
2017-06-16 18:29
1***@qq.com

1***@qq.com

轮播不支持gif吗
2017-06-16 14:51