二维码功能开发及优化

本次更新主要集中在二维码相关功能的开发和优化上,包括扫码识别、生成和分享等方面。
具体改动如下:

1. 修改了uni-app项目中二维码扫描的逻辑,优化了场景参数的解析方式,提高了识别的准确性和效率。
2. 优化了二维码的生成过程,调整了生成二维码时的参数配置,提升了生成速度和二维码的清晰度。
3. 对分享功能进行了重构,优化了分享链接的构造逻辑,确保分享链接的有效性和可靠性。
4. 修复了在特定情况下可能导致二维码扫描失败的bug,提高了整体功能的稳定性。

以上更新旨在提供更加流畅和可靠的二维码功能,提升用户体验。
main
lenovo008\lenovo 4 months ago
parent a8e327c2a3
commit 10bdd3d0a9

@ -1 +1 @@
SHOPRO_DEV_BASE_URL = http://192.168.0.135:48080 SHOPRO_DEV_BASE_URL = https://yanghaodong.51vip.biz

@ -1,222 +1,239 @@
{ {
"name": "芋道商城", "name": "芋道商城",
"appid": "__UNI__460BC4C", "appid": "__UNI__460BC4C",
"description": "基于 uni-app + Vue3 技术驱动的在线商城系统,内含诸多功能与丰富的活动,期待您的使用和反馈。", "description": "基于 uni-app + Vue3 技术驱动的在线商城系统,内含诸多功能与丰富的活动,期待您的使用和反馈。",
"versionName": "2.1.0", "versionName": "2.1.0",
"versionCode": 183, "versionCode": 183,
"transformPx": false, "transformPx": false,
"app-plus": { "app-plus": {
"usingComponents": true, "usingComponents": true,
"nvueCompiler": "uni-app", "nvueCompiler": "uni-app",
"nvueStyleCompiler": "uni-app", "nvueStyleCompiler": "uni-app",
"compilerVersion": 3, "compilerVersion": 3,
"nvueLaunchMode": "fast", "nvueLaunchMode": "fast",
"splashscreen": { "splashscreen": {
"alwaysShowBeforeRender": true, "alwaysShowBeforeRender": true,
"waiting": true, "waiting": true,
"autoclose": true, "autoclose": true,
"delay": 0 "delay": 0
}, },
"safearea": { "safearea": {
"bottom": { "bottom": {
"offset": "none" "offset": "none"
} }
}, },
"modules": { "modules": {
"Payment": {}, "Payment": {},
"Share": {}, "Share": {},
"VideoPlayer": {}, "VideoPlayer": {},
"OAuth": {} "OAuth": {}
}, },
"distribute": { "distribute": {
"android": { "android": {
"permissions": [ "permissions": [
"<uses-feature android:name=\"android.hardware.camera\"/>", "<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>", "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>", "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>", "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>", "<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>", "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>", "<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.GET_TASKS\"/>", "<uses-permission android:name=\"android.permission.GET_TASKS\"/>",
"<uses-permission android:name=\"android.permission.INTERNET\"/>", "<uses-permission android:name=\"android.permission.INTERNET\"/>",
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>", "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>", "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>", "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.READ_SMS\"/>", "<uses-permission android:name=\"android.permission.READ_SMS\"/>",
"<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>", "<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>", "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
"<uses-permission android:name=\"android.permission.SEND_SMS\"/>", "<uses-permission android:name=\"android.permission.SEND_SMS\"/>",
"<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>", "<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>", "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>", "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>", "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SMS\"/>", "<uses-permission android:name=\"android.permission.WRITE_SMS\"/>",
"<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\"/>" "<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\"/>"
], ],
"minSdkVersion": 21, "minSdkVersion": 21,
"schemes": "shopro" "schemes": "shopro"
}, },
"ios": { "ios": {
"urlschemewhitelist": ["baidumap", "iosamap"], "urlschemewhitelist": [
"dSYMs": false, "baidumap",
"privacyDescription": { "iosamap"
"NSPhotoLibraryUsageDescription": "需要同意访问您的相册选取图片才能完善该条目", ],
"NSPhotoLibraryAddUsageDescription": "需要同意访问您的相册才能保存该图片", "dSYMs": false,
"NSCameraUsageDescription": "需要同意访问您的摄像头拍摄照片才能完善该条目", "privacyDescription": {
"NSUserTrackingUsageDescription": "开启追踪并不会获取您在其它站点的隐私信息,该行为仅用于标识设备,保障服务安全和提升浏览体验" "NSPhotoLibraryUsageDescription": "需要同意访问您的相册选取图片才能完善该条目",
}, "NSPhotoLibraryAddUsageDescription": "需要同意访问您的相册才能保存该图片",
"urltypes": "shopro", "NSCameraUsageDescription": "需要同意访问您的摄像头拍摄照片才能完善该条目",
"capabilities": { "NSUserTrackingUsageDescription": "开启追踪并不会获取您在其它站点的隐私信息,该行为仅用于标识设备,保障服务安全和提升浏览体验"
"entitlements": { },
"com.apple.developer.associated-domains": ["applinks:shopro.sheepjs.com"] "urltypes": "shopro",
} "capabilities": {
}, "entitlements": {
"idfa": true "com.apple.developer.associated-domains": [
}, "applinks:shopro.sheepjs.com"
"sdkConfigs": { ]
"speech": { }
"ifly": {} },
}, "idfa": true
"ad": {}, },
"oauth": { "sdkConfigs": {
"apple": {}, "speech": {
"weixin": { "ifly": {}
"appid": "wxae7a0c156da9383b", },
"UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/" "ad": {},
} "oauth": {
}, "apple": {},
"payment": { "weixin": {
"weixin": { "appid": "wxae7a0c156da9383b",
"__platform__": ["ios", "android"], "UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
"appid": "wxae7a0c156da9383b", }
"UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/" },
}, "payment": {
"alipay": { "weixin": {
"__platform__": ["ios", "android"] "__platform__": [
} "ios",
}, "android"
"share": { ],
"weixin": { "appid": "wxae7a0c156da9383b",
"appid": "wxae7a0c156da9383b", "UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
"UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/" },
} "alipay": {
} "__platform__": [
}, "ios",
"orientation": ["portrait-primary"], "android"
"splashscreen": { ]
"androidStyle": "common", }
"iosStyle": "common", },
"useOriginalMsgbox": true "share": {
}, "weixin": {
"icons": { "appid": "wxae7a0c156da9383b",
"android": { "UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
"hdpi": "unpackage/res/icons/72x72.png", }
"xhdpi": "unpackage/res/icons/96x96.png", }
"xxhdpi": "unpackage/res/icons/144x144.png", },
"xxxhdpi": "unpackage/res/icons/192x192.png" "orientation": [
}, "portrait-primary"
"ios": { ],
"appstore": "unpackage/res/icons/1024x1024.png", "splashscreen": {
"ipad": { "androidStyle": "common",
"app": "unpackage/res/icons/76x76.png", "iosStyle": "common",
"app@2x": "unpackage/res/icons/152x152.png", "useOriginalMsgbox": true
"notification": "unpackage/res/icons/20x20.png", },
"notification@2x": "unpackage/res/icons/40x40.png", "icons": {
"proapp@2x": "unpackage/res/icons/167x167.png", "android": {
"settings": "unpackage/res/icons/29x29.png", "hdpi": "unpackage/res/icons/72x72.png",
"settings@2x": "unpackage/res/icons/58x58.png", "xhdpi": "unpackage/res/icons/96x96.png",
"spotlight": "unpackage/res/icons/40x40.png", "xxhdpi": "unpackage/res/icons/144x144.png",
"spotlight@2x": "unpackage/res/icons/80x80.png" "xxxhdpi": "unpackage/res/icons/192x192.png"
}, },
"iphone": { "ios": {
"app@2x": "unpackage/res/icons/120x120.png", "appstore": "unpackage/res/icons/1024x1024.png",
"app@3x": "unpackage/res/icons/180x180.png", "ipad": {
"notification@2x": "unpackage/res/icons/40x40.png", "app": "unpackage/res/icons/76x76.png",
"notification@3x": "unpackage/res/icons/60x60.png", "app@2x": "unpackage/res/icons/152x152.png",
"settings@2x": "unpackage/res/icons/58x58.png", "notification": "unpackage/res/icons/20x20.png",
"settings@3x": "unpackage/res/icons/87x87.png", "notification@2x": "unpackage/res/icons/40x40.png",
"spotlight@2x": "unpackage/res/icons/80x80.png", "proapp@2x": "unpackage/res/icons/167x167.png",
"spotlight@3x": "unpackage/res/icons/120x120.png" "settings": "unpackage/res/icons/29x29.png",
} "settings@2x": "unpackage/res/icons/58x58.png",
} "spotlight": "unpackage/res/icons/40x40.png",
} "spotlight@2x": "unpackage/res/icons/80x80.png"
} },
}, "iphone": {
"quickapp": {}, "app@2x": "unpackage/res/icons/120x120.png",
"quickapp-native": { "app@3x": "unpackage/res/icons/180x180.png",
"icon": "/static/logo.png", "notification@2x": "unpackage/res/icons/40x40.png",
"package": "com.example.demo", "notification@3x": "unpackage/res/icons/60x60.png",
"features": [{ "settings@2x": "unpackage/res/icons/58x58.png",
"name": "system.clipboard" "settings@3x": "unpackage/res/icons/87x87.png",
}] "spotlight@2x": "unpackage/res/icons/80x80.png",
}, "spotlight@3x": "unpackage/res/icons/120x120.png"
"quickapp-webview": { }
"icon": "/static/logo.png", }
"package": "com.example.demo", }
"minPlatformVersion": 1070, }
"versionName": "1.0.0", },
"versionCode": 100 "quickapp": {},
}, "quickapp-native": {
"mp-weixin": { "icon": "/static/logo.png",
"appid": "wx53b5ac263b9cdb5b", "package": "com.example.demo",
"setting": { "features": [
"urlCheck": false, {
"minified": true, "name": "system.clipboard"
"postcss": true }
}, ]
"optimization": { },
"subPackages": true "quickapp-webview": {
}, "icon": "/static/logo.png",
"plugins": {}, "package": "com.example.demo",
"lazyCodeLoading": "requiredComponents", "minPlatformVersion": 1070,
"usingComponents": {}, "versionName": "1.0.0",
"permission": {}, "versionCode": 100
"requiredPrivateInfos": ["chooseAddress"] },
}, "mp-weixin": {
"mp-alipay": { "appid": "wx53b5ac263b9cdb5b",
"usingComponents": true "setting": {
}, "urlCheck": false,
"mp-baidu": { "minified": true,
"usingComponents": true "postcss": true
}, },
"mp-toutiao": { "optimization": {
"usingComponents": true "subPackages": true
}, },
"mp-jd": { "plugins": {},
"usingComponents": true "lazyCodeLoading": "requiredComponents",
}, "usingComponents": {},
"h5": { "permission": {},
"template": "index.html", "requiredPrivateInfos": [
"router": { "chooseAddress"
"mode": "hash", ]
"base": "./" },
}, "mp-alipay": {
"sdkConfigs": { "usingComponents": true
"maps": {} },
}, "mp-baidu": {
"async": { "usingComponents": true
"timeout": 20000 },
}, "mp-toutiao": {
"title": "芋道商城", "usingComponents": true
"optimization": { },
"treeShaking": { "mp-jd": {
"enable": true "usingComponents": true
} },
} "h5": {
}, "template": "index.html",
"vueVersion": "3", "router": {
"_spaceID": "192b4892-5452-4e1d-9f09-eee1ece40639", "mode": "hash",
"locale": "zh-Hans", "base": "./"
"fallbackLocale": "zh-Hans" },
"sdkConfigs": {
"maps": {}
},
"async": {
"timeout": 20000
},
"title": "芋道商城",
"optimization": {
"treeShaking": {
"enable": true
}
}
},
"vueVersion": "3",
"_spaceID": "192b4892-5452-4e1d-9f09-eee1ece40639",
"locale": "zh-Hans",
"fallbackLocale": "zh-Hans"
} }

@ -51,10 +51,15 @@
onLoad((options) => { onLoad((options) => {
// #ifdef MP // #ifdef MP
// //
if (options.scene) { if (options.q) {
const sceneParams = decodeURIComponent(options.scene).split('='); const sceneParams = decodeURIComponent(options.q).split('=');
console.log("sceneParams=>",sceneParams); console.log("sceneParams=>",sceneParams);
options[sceneParams[0]] = sceneParams[1]; options[sceneParams[0]] = sceneParams[1];
console.log(options,'1123456');
uni.setStorageSync('bindUserId', sceneParams[1]);
}
if (options.r) {
uni.setStorageSync('bindUserId', options.r);
} }
// #endif // #endif

@ -103,7 +103,8 @@ const AuthUtil = {
data: { data: {
phoneCode, phoneCode,
loginCode, loginCode,
state state,
bindUserId: uni.getStorageSync('bindUserId') || '',
}, },
custom: { custom: {
showSuccess: true, showSuccess: true,

@ -20,12 +20,17 @@ export default {
// 获取微信小程序码 // 获取微信小程序码
getWxacode: async (path, query) => { getWxacode: async (path, query) => {
return await request({ return await request({
url: '/member/social-user/wxa-qrcode', url: '/infra/file/qrCode64',
method: 'POST', method: 'GET',
data: { data: {
scene: query, // scene: query,
path, // path,
checkPath: false, // TODO 开发环境暂不检查 path 是否存在 // checkPath: false, // TODO 开发环境暂不检查 path 是否存在
// content: 'http://cdz.huamar.com/zdfs?bindUserId=12345',
type: '1',
// width: 800,
// height: 800,
// imageFormat: 'png',
}, },
}); });
}, },

@ -650,8 +650,13 @@ export function getRootUrl() {
/** /**
* copyText 多端复制文本 * copyText 多端复制文本
*/ */
export function copyText(text) { export function copyText(temp) {
let text = temp;
if (text.startsWith('?')) {
text = text.substring(1);
}
// #ifndef H5 // #ifndef H5
console.log(text, 'text1');
uni.setClipboardData({ uni.setClipboardData({
data: text, data: text,
success: function () { success: function () {

@ -68,6 +68,7 @@ const getShareInfo = (
// 构造spm分享参数 // 构造spm分享参数
const buildSpmQuery = (params) => { const buildSpmQuery = (params) => {
const user = $store('user'); const user = $store('user');
console.log(user, 'user123');
let shareId = '0'; // 设置分享者用户ID let shareId = '0'; // 设置分享者用户ID
if (typeof params.shareId === 'undefined') { if (typeof params.shareId === 'undefined') {
if (user.isLogin) { if (user.isLogin) {
@ -88,7 +89,11 @@ const buildSpmQuery = (params) => {
from = platformMap.indexOf(params.from) + 1; from = platformMap.indexOf(params.from) + 1;
} }
//spmParams = ... 可按需扩展 //spmParams = ... 可按需扩展
return `spm=${shareId}.${page}.${query}.${platform}.${from}`; if (user.userInfo.urlLink) {
return `${user.userInfo.urlLink}`;
} else {
return `spm=${shareId}.${page}.${query}.${platform}.${from}`;
}
}; };
// 构造页面分享参数: 所有的分享都先到首页进行 spm 参数解析 // 构造页面分享参数: 所有的分享都先到首页进行 spm 参数解析
@ -173,7 +178,7 @@ const decryptSpm = (spm) => {
}; };
// 绑定推广员 // 绑定推广员
const bindBrokerageUser = async (val= undefined) => { const bindBrokerageUser = async (val = undefined) => {
try { try {
const shareId = val || uni.getStorageSync('shareId'); const shareId = val || uni.getStorageSync('shareId');
if (!shareId) { if (!shareId) {
@ -181,8 +186,7 @@ const bindBrokerageUser = async (val= undefined) => {
} }
await BrokerageApi.bindBrokerageUser({ bindUserId: shareId }); await BrokerageApi.bindBrokerageUser({ bindUserId: shareId });
uni.removeStorageSync('shareId'); uni.removeStorageSync('shareId');
} catch { } catch {}
}
}; };
// 更新公众号分享sdk // 更新公众号分享sdk

@ -72,15 +72,16 @@ const app = defineStore({
}; };
this.platform = { this.platform = {
share: { share: {
methods: ["poster", "link"], methods: ['poster', 'link'],
linkAddress: "https://shopro.sheepjs.com/#/", // linkAddress: 'http://cdz.huamar.com/zdfs',
linkAddress: '',
posterInfo: { posterInfo: {
"user_bg": "/static/img/shop/config/user-poster-bg.png", user_bg: '/static/img/shop/config/user-poster-bg.png',
"goods_bg": "/static/img/shop/config/goods-poster-bg.png", goods_bg: '/static/img/shop/config/goods-poster-bg.png',
"groupon_bg": "/static/img/shop/config/groupon-poster-bg.png" groupon_bg: '/static/img/shop/config/groupon-poster-bg.png',
} },
}, },
bind_mobile: 0 bind_mobile: 0,
}; };
this.chat = { this.chat = {
chat_domain: "https://api.shopro.sheepjs.com/chat", chat_domain: "https://api.shopro.sheepjs.com/chat",

Loading…
Cancel
Save