备案,认证
bug 为什么小程序“超新星实验室无法搜索”?没有违规呀
06-03不能异步,有可能的话提前调用需要的接口缓存返回,点击时候直接用缓存信息。
使用openEmbeddedMiniProgram打开之后进入的是全屏?是什么问题[图片][图片] 我在微信设置已经加了这个appid
05-30请先详细描述问题
有哪位大哥能帮我看看这是什么问题?我找了一天了都没找到,而且还被骗了200块钱。[图片]
05-30先确定链接已正常建立,执行成功回调中打印结果看看先
小程序使用websocket时无限报错,应该如何解决?小程序使用websocketwux先报错,错误数不停地增加,导致调试器都无法使用,经查询代码,没有定义或使用过 task 这个变量。 [图片]
05-29为什么不按照示例代码写?小程序和uni都有示例,看文档逐一排查, appId 不能为空,path为页面路径(直接从app.json中取)。
点击没有反应?wx.navigateToMiniProgram({ appId: '', path: `${urlScheme}&cq=${encodeURIComponent(data)}`, // extraData: { // foo: 'bar' // }, envVersion: 'develop', success(res) { alert(urlScheme) // 打开成功 } }) }).catch(err => { alert(urlScheme) uni.hideLoading(); });
05-28推送没有体验版这个说法吧,都是推送到用户微信上的
微信小程序订阅消息推送微信小程序订阅消息推送为啥用户能收到体验版的推送??
05-27先认证
小程序信息,小程序类目 填写按钮不可点击? 这个要怎么处理?[图片] 原始id:gh_c8e66c3a03c6
05-21核心思路登录阶段获取[代码]openid[代码]:用户进入小程序后,立即调用登录接口获取[代码]openid[代码],作为授权前后的唯一关联标识(无论是否授权手机号,[代码]openid[代码]始终不变)。缓存未授权时的操作记录:在用户授权手机号前,将浏览的页面路径、操作时间等信息以[代码]openid[代码]为键缓存到本地(如[代码]wx.setStorage[代码])。授权后同步缓存数据:用户授权手机号后,将本地缓存的记录与手机号、[代码]openid[代码]一同提交至服务器,完成关联。
需要技术答疑--怎么把用户授权前后浏览页面串起来有这么个场景需要咨询下,需要一个关联标识: 微信用户进入小程序,在没有授权让我获取手机号的情况下,浏览了小程序上的一系列页面(A、B、C等页面),然后用户授信我获取手机号,此时我怎么把用户授权之前浏览的页面关联上,用户在授权前后有什么标识时一样的、或者可以关联的不
05-20不行,这类api关闭了。不支持跳转app了,只能返回。 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/launchApp.html[图片]
微信网页能不能调起第三方app,比如美团,大众点评这种?可以的话,希望能给个文档或者demo
05-19找开发者处理
为什么发出的声音会一会是男声,一会是女声?这个能设置固定的吗?<template> <view class="page_wrap u-flex-col u-row-between"> <view class="content"> <MyNavbar title="检票"></MyNavbar> <view class="content_middle u-flex-col "> <view class="content_middle_title">终端绑定</view> <view class="content_middle_input u-flex-col u-row-center u-col-center"> <view class="content_middle_item u-flex u-row-between"> <view class="label">当前终端:{{ terminalObj.terminalName }}</view> <view class="moni_button" @click="reSetBindTerminal">终端解绑</view> </view> <u-form :model="form" ref="uForm"> <u-form-item :border-bottom="false"> <u-input v-model="form.text" type="select" disabled @click="toSelectOut" :border="border" placeholder="终端选择" /> <u-picker :show="selectFlag" mode="selector" :columns="terminalColumns" @confirm="confirmPicker" @cancel="cancelPicker" keyName="label" :default-index="[0]"></u-picker> </u-form-item> </u-form> </view> <view class="content_middle_button"> <u-button :custom-style="customStyle" @click="bindTerminal">终端绑定</u-button> </view> </view> <view class="content_middle u-flex-col "> <view class="content_middle_title">语音设置</view> <view class="content_middle_input u-flex u-row-between u-col-center u-p-l-60 u-p-r-60"> <view class=""> 是否开启语音 </view> <view class=""> <u-switch v-model="isAudio" active-color="#F87428" @change="switchChange"></u-switch> </view> </view> </view> </view> <MyFooter /> </view> </template> <script> import { checkTerminalIsBind, bindTerminal, reSetBindTerminal, findNoBindTerminalList } from '@/api/check-ticket/index.js'; import MyFooter from '@/components/MyFooter/index.vue'; import { getUserInfo, setIsAudio, getIsAudio } from '@/util/storage.js'; export default { components: { MyFooter }, data() { return { border: false, selectFlag: false, form: { text: '', terminalNo: '' }, terminalList: [], terminalColumns: [], machineNo: null, terminalObj: { positionName: '', terminalName: '', terminalNo: '', terminalId: '' }, isAudio: false, customStyle: { width: '598rpx', height: '84rpx', background: '#F87428', borderRadius: '46rpx 46rpx 46rpx 46rpx', fontSize: '32rpx', fontFamily: ' PingFang SC-Regular, PingFang SC', fontWeight: 400, color: '#FFFFFF', lineHeight: '44rpx', }, }; }, onLoad(option) {}, created() { this.initPage(); }, methods: { cancelPicker() { this.selectFlag = false; // 关闭下拉菜单 }, confirmPicker(e) { console.log("确认选择的数据:", e); if (e.value && e.value.length > 0) { const selected = e.value[0]; // 获取选中的选项对象 this.form.text = selected.label; // 更新 form.text this.form.terminalNo = selected.value; // 更新 form.terminalNo } this.selectFlag = false; // 关闭下拉菜单 }, confirm(e) { this.form.text = e[0].label; this.form.terminalNo = e[0].value; this.selectFlag = false; // 关闭下拉菜单 }, initPage() { console.log(getApp().globalData.setTerimalStorage) if (getApp().globalData.setTerimalStorage == 'ticketTerimal') { this.machineNo = getUserInfo().memberId; } else { this.machineNo = getUserInfo().memberNo; } if (!this.machineNo) { uni.redirectTo({ url: 'pages/login/login' }); } this.checkTerminalIsBind(); this.findNoBindTerminalList(); let isAudio = getIsAudio() if (isAudio) { this.isAudio = isAudio } else { this.isAudio = false } }, // init回显 checkTerminalIsBind() { checkTerminalIsBind({ machineNo: this.machineNo }).then(res => { if (res.data) { this.terminalObj = { positionName: res.data.positionName, terminalName: res.data.terminalName, terminalNo: res.data.terminalNo, terminalId: res.data.terminalId, scenicSpotId: res.data.scenicSpotId, }; uni.setStorageSync(getApp().globalData.setTerimalStorage, this.terminalObj) } else { this.terminalObj = this.$options.data().terminalObj; } }); }, // 查终端列表 findNoBindTerminalList() { findNoBindTerminalList({ terminalType: getApp().globalData.TERMINALTYPE }).then(res => { if (res.data?.list) { this.terminalList = res.data.list.map(item => ({ label: item.terminalName, value: item.terminalNo })); this.terminalColumns = [this.terminalList]; } else { this.terminalList = []; this.terminalColumns = []; } }); }, reSetBindTerminal() { if (!this.terminalObj.terminalName) return; uni.showToast({ title: '正在解绑中', icon: 'loading' }); reSetBindTerminal({ terminalNo: this.terminalObj.terminalNo }) .then(res => { this.terminalObj = this.$options.data().terminalObj; this.form = {}; uni.removeStorageSync(getApp().globalData.setTerimalStorage); this.checkTerminalIsBind(); }) .finally(() => { uni.hideToast(); this.findNoBindTerminalList(); }); }, // 呼出下拉 toSelectOut() { console.log('点击事件触发,当前终端名称:', this.terminalObj.terminalName); // 调试日志 if (this.terminalObj.terminalName) { console.log('终端已绑定,禁止选择'); return; } console.log('打开picker'); this.selectFlag = true; }, // 选择 toSelect(index) { this.form.text = e.name; this.form.terminalNo = e.value; this.selectFlag = false // this.form = uni.$u.deepClone(this.terminalList[index]); }, bindTerminal() { uni.showToast({ title: '正在绑定中', icon: 'loading' }); bindTerminal({ machineNo: this.machineNo, terminalNo: this.form.terminalNo }) .then(res => { this.terminalObj = { positionName: res.data.positionName, terminalName: res.data.terminalName, terminalNo: res.data.terminalNo, terminalId: res.data.terminalId, scenicSpotId: res.data.scenicSpotId, }; uni.setStorageSync(getApp().globalData.setTerimalStorage, this.terminalObj); }) .finally(() => { uni.hideToast(); }); }, // 选择开启语音 switchChange(value) { setIsAudio(value) } } }; </script>
05-19