tnblog
首页
视频
资源
登录

uniapp预览图片详解

5944人阅读 2023/9/27 17:27 总访问:688224 评论:0 收藏:0 手机
分类: uniapp

一、预览图片的基本用法

在uniapp中,我们可以使用uni.previewImage()API对图片进行预览,具体使用方法如下:

  1. uni.previewImage({
  2. urls: ['https://example.com/image1.jpg', 'https://example.com/image2.jpg'],
  3. current: 0
  4. });

其中,urls参数为一个字符串数组,表示需要预览的图片数组;current参数为一个数字,表示当前选中的图片在数组中的索引值,从0开始计数。

在调用uni.previewImage()方法后,uniapp会显示系统自带的图片预览界面,用户可以滑动查看多张图片,也可以缩放图片进行查看。

二、自定义预览组件

如果预览图片需要一些自定义的功能,例如添加分享按钮或者保存图片按钮,我们可以使用uni.previewImage()方法的customButtons参数来自定义按钮。具体代码如下:

  1. uni.previewImage({
  2. urls: ['https://example.com/image1.jpg', 'https://example.com/image2.jpg'],
  3. current: 0,
  4. customButtons: [{
  5. icon: 'https://example.com/share.png',
  6. text: '分享',
  7. onTap: function() {
  8. // 分享图片
  9. }
  10. }, {
  11. icon: 'https://example.com/save.png',
  12. text: '保存到相册',
  13. onTap: function() {
  14. // 保存图片到相册
  15. }
  16. }]
  17. });

其中,customButtons参数为一个对象数组,表示自定义按钮的配置,每个对象包含3个属性:

  • icon:按钮的图标,可以是本地图片路径或者网络图片路径。
  • text:按钮的文本。
  • onTap:按钮的点击事件回调函数。

三、查看原图

在预览图片时,部分用户可能需要查看原图,而默认情况下uniapp并不会加载原图,而是按照屏幕尺寸进行裁剪和缩放。如果需要查看原图,需要对uni.previewImage()方法的urls参数进行修改,将缩略图路径替换成原图路径。具体代码如下:

  1. uni.previewImage({
  2. urls: ['https://example.com/image1_original.jpg', 'https://example.com/image2_original.jpg'],
  3. current: 0
  4. });

通过将urls参数中的缩略图路径替换成原图路径,就可以实现查看原图的功能。

四、动态预览图片

在某些情况下,我们需要动态生成并预览多张图片,例如根据用户输入的关键字搜索相关图片后,需要展示搜索结果中的图片。此时,可以使用wx.previewImage()方法动态生成预览组件。具体代码如下:

  1. // 动态生成预览组件
  2. let preview = uni.createPreviewImage({
  3. // 图片地址数组
  4. urls: ['https://example.com/image1.jpg', 'https://example.com/image2.jpg'],
  5. // 当前显示图片的索引值
  6. current: 0,
  7. // 预览组件显示成功的回调函数
  8. success () {
  9. console.log('预览组件显示成功');
  10. },
  11. // 关闭预览组件的回调函数
  12. fail () {
  13. console.log('预览组件关闭');
  14. }
  15. });
  16. // 更新图片地址数组
  17. preview.update({
  18. urls: ['https://example.com/image3.jpg', 'https://example.com/image4.jpg']
  19. });
  20. // 更新当前显示图片的索引值
  21. preview.update({
  22. current: 1
  23. });
  24. // 关闭预览组件
  25. preview.close();

通过调用uni.createPreviewImage()方法动态生成预览组件,可以动态生成多个预览组件,并对预览组件进行各种操作,例如更新图片地址数组、更新当前显示图片的索引值、关闭预览组件等。

五、支持长按保存图片

在默认情况下,uniapp的图片预览组件不支持长按保存图片功能。如果需要支持长按保存图片功能,需要借助插件uni-saving-image-plugin来实现。具体使用方法如下:

  • 安装插件:使用HBuilderX,找到项目根目录,右键选择“插件”→“插件管理器”,搜索插件uni-saving-image-plugin并安装。
  • pages.json文件中添加配置信息:

    1. {
    2. "pages": [
    3. {
    4. "path": "pages/index/index",
    5. "style": {
    6. "navigationBarTitleText": "首页"
    7. }
    8. },
    9. {
    10. "path": "pages/preview-image/preview-image",
    11. "style": {
    12. "navigationBarTitleText": "预览图片"
    13. },
    14. "usingComponents": {
    15. "uni-preview-image": "@dcloudio/uni-ui/lib/uni-preview-image/uni-preview-image"
    16. }
    17. }
    18. ],
    19. "easycom": {
    20. "autoscan": true,
    21. "custom": {
    22. "uni-preview-image": "@dcloudio/uni-ui/lib/uni-preview-image/uni-preview-image"
    23. }
    24. },
    25. "plugins": {
    26. "uni-saving-image-plugin": {
    27. "version": "1.0.0",
    28. "provider": "uni-silence"
    29. }
    30. }
    31. }

    plugins节点中添加uni-saving-image-plugin插件的配置信息,其中version参数表示插件的版本号,provider参数表示插件的提供者。

  • preview-image.vue文件中添加代码:

  1. <script>
  2. export default {
  3. data () {
  4. return {
  5. currentIndex: 0,
  6. images: [
  7. 'https://example.com/image1.jpg',
  8. 'https://example.com/image2.jpg',
  9. 'https://example.com/image3.jpg'
  10. ]
  11. };
  12. }
  13. }
  14. </script>

uni-preview-image组件中添加show-save-button属性,并将其设置为true,表示显示保存按钮。当用户长按图片时,预览组件会显示保存按钮,用户点击保存按钮即可保存当前图片到相册中。

原文:https://www.python100.com/html/92736.html


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

uniapp APP开发基础

前言uniapp是基于vue.js实现的,代码实现方法不能用jQuery的思路去解决问题,基本使用template: 模板view: 视图,使用时把v...

uniapp页面跳转传递参数过长

前言页面传递参数过长如果需要传递的参数content过长,传递的时候会有问题所以使用encodeURIComponent来传递uni.navigateTo...

uniapp webview跳转到app内部页面

官方文档:https://ask.dcloud.net.cn/article/35083相关问题:https://ask.dcloud.net.cn/question/93777引入需要的Js:&lt...

uniapp中webview跳转到app内部页面

官方文档:https://ask.dcloud.net.cn/article/35083第一步:在webview加载的页面引入Js&lt;!--uni的SDK,必须引用。--&gt;...

uniapp返回上一级页面刷新页面

当前页面: //uniapp返回上一级页面刷新页面 let pages = getCurrentPages(); // 当前页面 let beforePage ...

uniapp uni.navigateBack无法返回

注意测试的时候,不要直接打开当前页进行测试。要从其他页面点进去在返回测试。不然你获取上一页是没有的,就会报错。

uniapp确认提示框

代码如下: uni.showModal({ title: &#39;提示&#39;, content: &#39;这是一个模态弹窗&#39;, success: fun...

uni-app 微信小程序 上传图片文件,uniapp。uni-file-picker 和数据一起上传图片,上传图片的时候携带数据。多图上传

[TOC]uni-app中上传图片可以使用方法uni.uploadFileuni.uploadFile官方文档:https://uniapp.dcloud.net.cn/api/request/ne...

uniapp文档在线浏览,pdfexcelword等

示例代码uni.downloadFile({ url: &#39;https://example.com/somefile.pdf&#39;, success: function (res) { va...

uniapp 微信小程序 上传图片,上传文件,上传视频等,上传组件封装

上传图片文件还可以参考:https://www.tnblog.net/aojiancc2/article/details/8233 这个里边有关于.net6实现图片上传后端的...

uniapp vue3 引用样式表样式

这样即可: &lt;style scoped lang=&quot;scss&quot;&gt; @import &#39;@/static/css/report-box.scss&#39;; &lt;/style...

uniapp 离线打包配置

下载Android Studio 并配置好JavaSDK查看HBuilderX版本然后去下载对应的SDK版本https://pan.baidu.com/s/1ZYxRVH23EbldPQqO...

uniapp 离线打包配置高德地图

没有申请key的去高德开放平台申请的Android平台Keyhttps://console.amap.com/dev/key/app SHA1 在前面申请云端证书里面找 ...

uniapp 应用热更新,进度条/权限

/** * 检查安装应用权限 */ checkInstallPermission() { return new Promise((resolve, reject) =&gt; { tr...

uniapp plus.runtime.install 安装失败

APP 权限配置添加&quot;&lt;uses-permission android:name=\&quot;android.permission.REQUEST_INSTALL_PACKAGES\&quot;/&g...
如果有缘,错过了还会重来,如果无缘,相遇了也会离开
排名
9
文章
115
粉丝
5
评论
5
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术