fix:优化动态添加直播组件

pull/8/head
kele 2023-03-20 14:35:31 +08:00
parent f806152116
commit 8aa295b02d
5 changed files with 275 additions and 268 deletions

5
env
View File

@ -13,4 +13,7 @@ SHOPRO_API_PATH = /shop/api/
# 客户端静态资源地址 空=默认使用服务端指定的CDN资源地址前缀 | local=本地 | http(s)://xxx.xxx=自定义静态资源地址前缀 # 客户端静态资源地址 空=默认使用服务端指定的CDN资源地址前缀 | local=本地 | http(s)://xxx.xxx=自定义静态资源地址前缀
SHOPRO_STATIC_URL = https://file.sheepjs.com SHOPRO_STATIC_URL = https://file.sheepjs.com
SHOPRO_VERSION = v1.1.15 SHOPRO_VERSION = v1.8.1
# 是否开启直播 1 开启直播 | 0 关闭直播
SHOPRO_MPLIVE_ON = 0

View File

@ -1,36 +1,36 @@
{ {
"name" : "星品购", "name": "星品购",
"appid" : "__UNI__082C0BA", "appid": "__UNI__082C0BA",
"description" : "应用描述", "description": "应用描述",
"versionName" : "1.0.7", "versionName": "1.0.7",
"versionCode" : 107, "versionCode": 107,
"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\"/>",
@ -65,166 +65,181 @@
"<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": "需要同意访问您的相册才能保存该图片",
"NSCameraUsageDescription": "需要同意访问您的摄像头拍摄照片才能完善该条目",
"NSUserTrackingUsageDescription": "开启追踪并不会获取您在其它站点的隐私信息,该行为仅用于标识设备,保障服务安全和提升浏览体验"
}, },
"urltypes" : "shopro", "urltypes": "shopro",
"capabilities" : { "capabilities": {
"entitlements" : { "entitlements": {
"com.apple.developer.associated-domains" : [ "applinks:shopro.sheepjs.com" ] "com.apple.developer.associated-domains": [
"applinks:shopro.sheepjs.com"
]
} }
}, },
"idfa" : true "idfa": true
}, },
"sdkConfigs" : { "sdkConfigs": {
"speech" : { "speech": {
"ifly" : {} "ifly": {}
}, },
"ad" : {}, "ad": {},
"oauth" : { "oauth": {
"apple" : {}, "apple": {},
"weixin" : { "weixin": {
"appid" : "wxae7a0c156da9383b", "appid": "wxae7a0c156da9383b",
"UniversalLinks" : "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/" "UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
} }
}, },
"payment" : { "payment": {
"weixin" : { "weixin": {
"__platform__" : [ "ios", "android" ], "__platform__": [
"appid" : "wxae7a0c156da9383b", "ios",
"UniversalLinks" : "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/" "android"
],
"appid": "wxae7a0c156da9383b",
"UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
}, },
"alipay" : { "alipay": {
"__platform__" : [ "ios", "android" ] "__platform__": [
"ios",
"android"
]
} }
}, },
"share" : { "share": {
"weixin" : { "weixin": {
"appid" : "wxae7a0c156da9383b", "appid": "wxae7a0c156da9383b",
"UniversalLinks" : "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/" "UniversalLinks": "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
} }
} }
}, },
"orientation" : [ "portrait-primary" ], "orientation": [
"splashscreen" : { "portrait-primary"
"androidStyle" : "common", ],
"iosStyle" : "common", "splashscreen": {
"useOriginalMsgbox" : true "androidStyle": "common",
"iosStyle": "common",
"useOriginalMsgbox": true
}, },
"icons" : { "icons": {
"android" : { "android": {
"hdpi" : "unpackage/res/icons/72x72.png", "hdpi": "unpackage/res/icons/72x72.png",
"xhdpi" : "unpackage/res/icons/96x96.png", "xhdpi": "unpackage/res/icons/96x96.png",
"xxhdpi" : "unpackage/res/icons/144x144.png", "xxhdpi": "unpackage/res/icons/144x144.png",
"xxxhdpi" : "unpackage/res/icons/192x192.png" "xxxhdpi": "unpackage/res/icons/192x192.png"
}, },
"ios" : { "ios": {
"appstore" : "unpackage/res/icons/1024x1024.png", "appstore": "unpackage/res/icons/1024x1024.png",
"ipad" : { "ipad": {
"app" : "unpackage/res/icons/76x76.png", "app": "unpackage/res/icons/76x76.png",
"app@2x" : "unpackage/res/icons/152x152.png", "app@2x": "unpackage/res/icons/152x152.png",
"notification" : "unpackage/res/icons/20x20.png", "notification": "unpackage/res/icons/20x20.png",
"notification@2x" : "unpackage/res/icons/40x40.png", "notification@2x": "unpackage/res/icons/40x40.png",
"proapp@2x" : "unpackage/res/icons/167x167.png", "proapp@2x": "unpackage/res/icons/167x167.png",
"settings" : "unpackage/res/icons/29x29.png", "settings": "unpackage/res/icons/29x29.png",
"settings@2x" : "unpackage/res/icons/58x58.png", "settings@2x": "unpackage/res/icons/58x58.png",
"spotlight" : "unpackage/res/icons/40x40.png", "spotlight": "unpackage/res/icons/40x40.png",
"spotlight@2x" : "unpackage/res/icons/80x80.png" "spotlight@2x": "unpackage/res/icons/80x80.png"
}, },
"iphone" : { "iphone": {
"app@2x" : "unpackage/res/icons/120x120.png", "app@2x": "unpackage/res/icons/120x120.png",
"app@3x" : "unpackage/res/icons/180x180.png", "app@3x": "unpackage/res/icons/180x180.png",
"notification@2x" : "unpackage/res/icons/40x40.png", "notification@2x": "unpackage/res/icons/40x40.png",
"notification@3x" : "unpackage/res/icons/60x60.png", "notification@3x": "unpackage/res/icons/60x60.png",
"settings@2x" : "unpackage/res/icons/58x58.png", "settings@2x": "unpackage/res/icons/58x58.png",
"settings@3x" : "unpackage/res/icons/87x87.png", "settings@3x": "unpackage/res/icons/87x87.png",
"spotlight@2x" : "unpackage/res/icons/80x80.png", "spotlight@2x": "unpackage/res/icons/80x80.png",
"spotlight@3x" : "unpackage/res/icons/120x120.png" "spotlight@3x": "unpackage/res/icons/120x120.png"
} }
} }
} }
} }
}, },
"quickapp" : {}, "quickapp": {},
"quickapp-native" : { "quickapp-native": {
"icon" : "/static/logo.png", "icon": "/static/logo.png",
"package" : "com.example.demo", "package": "com.example.demo",
"features" : [ "features": [
{ {
"name" : "system.clipboard" "name": "system.clipboard"
} }
] ]
}, },
"quickapp-webview" : { "quickapp-webview": {
"icon" : "/static/logo.png", "icon": "/static/logo.png",
"package" : "com.example.demo", "package": "com.example.demo",
"minPlatformVersion" : 1070, "minPlatformVersion": 1070,
"versionName" : "1.0.0", "versionName": "1.0.0",
"versionCode" : 100 "versionCode": 100
}, },
"mp-weixin" : { "mp-weixin": {
"appid" : "wx43051b2afa4ed3d0", "appid": "wx43051b2afa4ed3d0",
"setting" : { "setting": {
"urlCheck" : false, "urlCheck": false,
"minified" : true, "minified": true,
"postcss" : true "postcss": true
}, },
"optimization" : { "optimization": {
"subPackages" : true "subPackages": true
}, },
"plugins" : { "plugins": {
"live-player-plugin" : { "live-player-plugin": {
"version" : "1.3.5", "version": "1.3.5",
"provider" : "wx2b03c6e691cd7370" "provider": "wx2b03c6e691cd7370"
} }
}, },
"lazyCodeLoading" : "requiredComponents", "lazyCodeLoading": "requiredComponents",
"usingComponents" : {}, "usingComponents": {},
"permission" : {}, "permission": {},
"requiredPrivateInfos" : [ "chooseAddress" ] "requiredPrivateInfos": [
"chooseAddress"
]
}, },
"mp-alipay" : { "mp-alipay": {
"usingComponents" : true "usingComponents": true
}, },
"mp-baidu" : { "mp-baidu": {
"usingComponents" : true "usingComponents": true
}, },
"mp-toutiao" : { "mp-toutiao": {
"usingComponents" : true "usingComponents": true
}, },
"mp-jd" : { "mp-jd": {
"usingComponents" : true "usingComponents": true
}, },
"h5" : { "h5": {
"template" : "index.html", "template": "index.html",
"router" : { "router": {
"mode" : "hash", "mode": "hash",
"base" : "./" "base": "./"
}, },
"sdkConfigs" : { "sdkConfigs": {
"maps" : {} "maps": {}
}, },
"async" : { "async": {
"timeout" : 20000 "timeout": 20000
}, },
"title" : "星品购", "title": "星品购",
"optimization" : { "optimization": {
"treeShaking" : { "treeShaking": {
"enable" : true "enable": true
} }
} }
}, },
"vueVersion" : "3", "vueVersion": "3",
"_spaceID" : "192b4892-5452-4e1d-9f09-eee1ece40639", "_spaceID": "192b4892-5452-4e1d-9f09-eee1ece40639",
"locale" : "zh-Hans", "locale": "zh-Hans",
"fallbackLocale" : "zh-Hans" "fallbackLocale": "zh-Hans"
} }

View File

@ -1,28 +0,0 @@
const fs = require('fs');
const manifestPath = process.env.UNI_INPUT_DIR + '/manifest.json';
let Manifest = fs.readFileSync(manifestPath, { encoding: 'utf-8' });
function replaceManifest(value, remove) {
let data = JSON.parse(Manifest)
let newValue = JSON.parse(value)
if (remove === 'delete') {
delete data['mp-weixin'].plugins['live-player-plugin'];
} else {
if (data['mp-weixin'].plugins['live-player-plugin']) return;
data['mp-weixin'].plugins = {
...data['mp-weixin'].plugins,
...newValue
}
}
Manifest = JSON.stringify(data)
fs.writeFileSync(manifestPath, Manifest, {
"flag": "w"
})
}
export default replaceManifest

View File

@ -0,0 +1,32 @@
const fs = require('fs');
const manifestPath = process.env.UNI_INPUT_DIR + '/manifest.json';
let Manifest = fs.readFileSync(manifestPath, {
encoding: 'utf-8'
});
function mpliveMainfestPlugin(isOpen) {
if (process.env.UNI_PLATFORM !== 'mp-weixin') return;
const manifestData = JSON.parse(Manifest)
if (isOpen === '0') {
delete manifestData['mp-weixin'].plugins['live-player-plugin'];
}
if (isOpen === '1') {
manifestData['mp-weixin'].plugins['live-player-plugin'] = {
"version": "1.3.5",
"provider": "wx2b03c6e691cd7370"
}
}
Manifest = JSON.stringify(manifestData, null, 2)
fs.writeFileSync(manifestPath, Manifest, {
"flag": "w"
})
}
export default mpliveMainfestPlugin

View File

@ -3,28 +3,12 @@ import uni from '@dcloudio/vite-plugin-uni';
import path from 'path'; import path from 'path';
// import viteCompression from 'vite-plugin-compression'; // import viteCompression from 'vite-plugin-compression';
import uniReadPagesV3Plugin from './sheep/router/utils/uni-read-pages-v3'; import uniReadPagesV3Plugin from './sheep/router/utils/uni-read-pages-v3';
// 引入直播组件 import mpliveMainfestPlugin from './sheep/libs/mpLive-manifest-plugin';
import replaceManifest from './modifyManifest'
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default (command, mode) => { export default (command, mode) => {
const env = loadEnv(mode, __dirname, 'SHOPRO_'); const env = loadEnv(mode, __dirname, 'SHOPRO_');
if (env.SHOPRO_MPLIVE_ON === 'true') {
replaceManifest(`{
"live-player-plugin": {
"version": "1.3.5",
"provider": "wx2b03c6e691cd7370"
}
}`, 'push')
} else {
replaceManifest(`{
"live-player-plugin": {
"version": "1.3.5",
"provider": "wx2b03c6e691cd7370"
}
}`, 'delete')
}
return { return {
envPrefix: "SHOPRO_", envPrefix: "SHOPRO_",
plugins: [ plugins: [
@ -36,6 +20,7 @@ export default (command, mode) => {
pagesJsonDir: path.resolve(__dirname, './pages.json'), pagesJsonDir: path.resolve(__dirname, './pages.json'),
includes: ['path', 'aliasPath', 'name', 'meta'], includes: ['path', 'aliasPath', 'name', 'meta'],
}), }),
mpliveMainfestPlugin(env.SHOPRO_MPLIVE_ON)
], ],
server: { server: {
host: true, host: true,