import { getRealPath } from '../util' import { publish } from '../../bridge' import { t } from 'uni-core/helpers/i18n' export function previewImagePlus ({ current = 0, background = '#000000', indicator = 'number', loop = false, urls, longPressActions } = {}) { urls = urls.map(url => getRealPath(url)) const index = Number(current) if (isNaN(index)) { current = urls.indexOf(getRealPath(current)) current = current < 0 ? 0 : current } else { current = index } plus.nativeUI.previewImage(urls, { current, background, indicator, loop, onLongPress: function (res) { let itemList = [] let itemColor = '' let title = '' const hasLongPressActions = longPressActions && longPressActions.callbackId if (!hasLongPressActions) { itemList = [t('uni.previewImage.button.save')] itemColor = '#000000' title = '' } else { itemList = longPressActions.itemList ? longPressActions.itemList : [] itemColor = longPressActions.itemColor ? longPressActions.itemColor : '#000000' title = longPressActions.title ? longPressActions.title : '' } const options = { buttons: itemList.map(item => ({ title: item, color: itemColor })), cancel: t('uni.previewImage.cancel') } if (title) { options.title = title } plus.nativeUI.actionSheet(options, (e) => { if (e.index > 0) { if (hasLongPressActions) { publish(longPressActions.callbackId, { errMsg: 'showActionSheet:ok', tapIndex: e.index - 1, index: res.index }) return } plus.gallery.save(res.url, function (GallerySaveEvent) { plus.nativeUI.toast(t('uni.previewImage.save.success')) }, function () { plus.nativeUI.toast(t('uni.previewImage.save.fail')) }) } else if (hasLongPressActions) { publish(longPressActions.callbackId, { errMsg: 'showActionSheet:fail cancel' }) } }) } }) return { errMsg: 'previewImage:ok' } } export function closePreviewImagePlus () { try { plus.nativeUI.closePreviewImage() return { errMsg: 'closePreviewImagePlus:ok' } } catch (error) { return { errMsg: 'closePreviewImagePlus:fail' } } }