Explorar el Código

长按二维码保存图片

lifanagju_citu hace 8 meses
padre
commit
ec414ac3ef
Se han modificado 1 ficheros con 37 adiciones y 6 borrados
  1. 37 6
      pages/index/my.vue

+ 37 - 6
pages/index/my.vue

@@ -46,9 +46,14 @@
 				<view class="shareQrCodePopupContent">
 					<view class="color-primary text">邀请用户注册领50积分</view>
 					<view class="qrCode">
-						<image :src="shareUrl" style="width: 200px;height: 200px;"></image>
+						<image
+            	v-if="!!shareUrl"
+							:src="shareUrl"
+							:show-menu-by-longpress="true"
+							style="width: 200px;height: 200px; padding: 20rpx;"
+						></image>
 					</view>
-					<view v-if="shareUrl" class="saveImg" @tap="handleSaveShareUrl">保存图片</view>
+					<view v-if="shareUrl" class="saveImg">长按二维码保存图片</view>
 				</view>
 			</uni-popup>
 		</view>
@@ -65,7 +70,7 @@ import layoutPage from '@/layout'
 import { showAuthModal } from '@/hooks/useModal'
 import { onShow } from '@dcloudio/uni-app'
 import { getJobAdvertisedShareQrcode } from '@/api/user'
-import { base64src } from '@/utils/base64src.js'
+// import { base64src } from '@/utils/base64src.js'
 // 设置自定义tabbar选中值
 onShow(() => {
     const currentPage = getCurrentPages()[0];  // 获取当前页面实例
@@ -159,7 +164,32 @@ const handleShareCode = async () => {
 
 // 保存到本地
 const handleSaveShareUrl = async () => {
-	base64src(shareUrl.value, '我的分享码')
+	// base64src(shareUrl.value, '我的分享码')
+	const fsm = wx.getFileSystemManager()
+	const data = shareUrl.value
+	// console.log('data:', data)
+	if (!data) return
+	fsm.writeFile({
+		filePath:wx.env.USER_DATA_PATH+'/MySharingCode.png',
+		data: data.slice(22),
+		encoding:'base64',
+		success: res => {
+			wx.saveImageToPhotosAlbum({
+				filePath: wx.env.USER_DATA_PATH + '/MySharingCode.png',
+				success: function (res) {
+					wx.showToast({
+						title: '保存成功',
+					})
+				},
+				fail: function (err) {
+					console.log(err)
+				}
+			})
+			// console.log(res)
+		}, fail: err => {
+			console.log(err)
+		}
+	})
 }
 
 // 登录
@@ -228,7 +258,8 @@ const handleLogoutConfirm = () => {
 }
 .shareQrCodePopupContent {
 	width: 80vw;
-	padding: 50rpx;
+	padding: 30rpx;
+	margin-bottom: 20rpx;
 	text-align: center;
 	background-color: #fff;
 	.text {
@@ -240,7 +271,7 @@ const handleLogoutConfirm = () => {
 	.saveImg {
 		text-align: center;
 		margin-top: 10px;
-		color: #00897B;
+		color: #999;
 	}
 }
 </style>