五个页面按 h5/css 的 style.css → ui-20261009 → ui-20261012 覆盖顺序逐条重排, 换算规则固定为 calc(N * var(--u)) → 2N rpx,固定 px 的字号保持 px。 - app.acss:换回 H5 设计 token(方角小倒角按钮 10rpx、卡片 14rpx、.chev 折线箭头) - splash/profile/history:底图与按钮文字图改用 H5 资源,隐私/政策弹窗按 H5 重排 - report:环形分用 conic-gradient、人脸裁切窗口叠加 face_maps、标记点百分比盒、 侧脸皱纹 pending/unavailable 文案;用 Playwright 抓 H5 94 个选择器几何比对, 整页高 2438.7 vs 2438.67 - camera:淘宝 <camera> 组件在真机整页崩溃(嵌了微信专有的 <cover-view>), 改为默认系统相机 + `config.nativeCamera` 开关 + pages/camtest 冒烟页验证组件 - permissions:淘宝用带前缀的 scope.camera(裸名返回 5022 Scope:camera信息不存在), 先试带前缀再退回裸名,拒绝后不再重复弹窗 - voice:非 HTTPS 资源导致的异常不再冒泡成整页崩溃;app.js 加开发版错误 toast - 开发版入口:权限诊断(启动页/相机页)、相机组件测试 - 测试 20/20(新增权限与相机能力用例)
30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
/* ═════ 1'me 肌肤状态检测 · 淘宝小程序 ═════
|
|
* 复用 H5 版业务逻辑与后端接口(POST /api/skin-analyze),channel 固定为 'taobao' */
|
|
App({
|
|
globalData: {
|
|
// 档案(profile 页填写):{ real_age, gender, region, daily_skin_type }
|
|
profile: null,
|
|
// 三连拍 dataURL,送检口径固定为 [正脸, 左脸, 右脸](与 H5 photosByView 一致)
|
|
photos: null,
|
|
// 检测接口返回:{ result, side, face_rectangle }
|
|
payload: null
|
|
},
|
|
|
|
onLaunch: function () {
|
|
// 预取语音清单(失败静默,不影响主流程)
|
|
require('./utils/voice.js').init();
|
|
},
|
|
onHide: function () {
|
|
require('./utils/voice.js').stop(true);
|
|
},
|
|
// 真机上看不到 console:开发版里把未捕获异常弹出到屏幕上,方便截图定位。
|
|
onError: function (error) {
|
|
try {
|
|
var config = require('./config');
|
|
if (config.environment === 'production') return;
|
|
var text = String((error && (error.message || error.stack)) || error);
|
|
my.showToast({ content: 'JS错误: ' + text.slice(0, 120), type: 'none', duration: 8000 });
|
|
} catch (_) {}
|
|
}
|
|
});
|