如果是体验版,只要在微信后台的成员管理设置一下体验权限就行了,只有有体验权限的人才能打开体验版的小程序;如果是正式版的话,在第三方登录的时候,利用获取到openid去数据库查询有无登录权限,思路大概就是这样。
登录权限各位大神好,第一次开发小程序,想问一下微信小程序开发完成后,只想让公司里面部分人 才能登录进去小程序,这个登录权限的功能实现大概是个什么流程
2019-07-02手机红米可以打开,可以进入首页,看得到tarbar
代码提交审核通过发布后 无法打开小程序代码提交审核通过发布后 无法打开小程序 代码需要放在我的web服务器的什么位置吗 请大神求解 谢谢
2019-07-02三天的审核吗?够长的,我们公司的小程序最迟都是第二天早上就通过了,快的2小时搞定
审核时间过长审核三天了 都没有消息... 想麻烦审核的大大,加急一下..
2019-07-01刚刚模板审核结果出来了,未能通过审核,原因是:涉嫌推广或营销相关内容。补充理由:不支持此类模板消息,易被滥用。 想了解得更详细些,不支持此类模板的意思是,不能申请优惠券模板吗?还是说内容需要修改一下重新申请? 有哪位大佬能帮忙解答一下吗?
服务通知模板申请- 需求的场景描述(希望解决的问题) 公司业务需求,需要2个关于优惠券的服务通知模板,在微信后台模板库中找不到合适的,所以昨天就手动申请了2个优惠券模板,一个是:获得优惠券通知,另一个是:使用优惠券通知。 - 希望提供的能力 由于公司业务时间比较紧凑,所以希望官方审核可以稍微快一丢丢,能快多少块多少,哪怕几分钟,我们也是万分感谢了!! 以下是我司申请的模板样例: [图片][图片] 如果大家有兴趣的可以看看,想要交流的都可以留言哦! (ps:图片是截图来的,所以高度没对齐,大家将就看看好啦。)
2019-04-02现在是1月10号下午3:00,我这边使用开发者工具,基础库从2.2.4到最新的2.5.0,意图触发onNetworkStatusChange事件,全部失效没有一次成功,以下是我的截图 [图片]
wx.onNetworkStatusChange无法监听网络变化,之前都是可以的wx.onNetworkStatusChange无法监听网络变化,之前都是可以的
2019-01-10不用想,肯定是‘to’得太多了,不停to来to去,导致页面栈超过10的数量,就to不动了
navigateTo与redirectTo跳转出现问题// pages/addCustomer/addCustomer.js var util = require('../../utils/util.js') var dateTimePicker = require('../../utils/dateTimePicker.js'); var app = getApp();// 获取录音管理器对象 const recorderManager = wx.getRecorderManager(); // 当前页面的对象 var myPage; // 结束录音的时候自己触发 recorderManager.onStop((res) => { // 获取到了录音文件的路径 const { tempFilePath } = res; // console.log(tempFilePath); console.log("开始发送"); // 把录音发送到后台 wx.uploadFile({ url: "http://231772m5y6.iok.la:48568/smart_order", filePath: tempFilePath, name: "wx_record", success: function (r) { console.log("成功", r); var result = JSON.parse(r.data); // 判断返回的状态 if (result.code == "00000") { console.log(result.data); console.log(myPage) myPage.setData({ followContent: result.data.text, }) console.log(myPage.data.followContent) } else { // 失败 } }, fail: function (e) { console.log("失败", e); } }); }) Page({ /** * 页面的初始数据 */ data: { date: '' || util.formatTime(new Date), time: '', dateTimeArray: null, dateTime: null, dateTimeArray1: null, dateTime1: null, startYear: 2000, endYear: 2050, // date: "" || util.formatTime(new Date), name: "", tel: "", company: "", money: "", followContent: "123", address: "", userId :"", content: "", way: "", project: "", locationAddress:"", location:"" }, // 按下录音 start_say() { // console.log(1) // 开始录音 recorderManager.start(); }, // 结束录音 end_say() { // console.log(2) // 结束录音 var that = this recorderManager.stop(); setTimeout(function(){ console.log(that.data.followContent) },10000) }, // 获取input的value值 name: function(e) { this.setData({ name: e.detail.value }) }, followContent: function (e) { this.setData({ followContent: e.detail.value }) console.log(this.data.followContent) }, tel: function(e) { this.setData({ tel: e.detail.value }) }, company: function(e) { this.setData({ company: e.detail.value }) }, money: function(e) { this.setData({ money: e.detail.value }) }, go: function(e) { wx.navigateTo({ url: '../keHuYiXiang/keHuYiXiang' }) }, go1: function(e) { wx.navigateTo({ url: '../dataType/dataType' }) }, go2: function(e) { wx.navigateTo({ url: '../SelObject/SelObject' }) }, // 选择当前的位置 chooseLocation() { wx.getSetting({ success(res) { if (!res.authSetting['scope.userLocation']) { wx.authorize({ scope: 'scope.userLocation', success() { wx.chooseLocation({ success(res) { console.log(res) that.setData({ location:res.longitude+'&'+res.latitude, locationAddress: res.address }) } }) } }) }else{ wx.chooseLocation({ success(res) { console.log(res) that.setData({ location: res.longitude + '&' + res.latitude, locationAddress: res.address }) } }) } } }) const that = this }, finish: function() { wx.setStorage({ key: 'common', data: { "name": this.data.name, "tel": this.data.tel, "company": this.data.company, "money": this.data.money, "followContent": this.data.followContent, "localtion": this.data.location, 'localtionAddress': this.data.locationAddress }, }) var that = this var name = "" var tel = "" var company = "" var kehu = "" var type = "" var selobject = "" var money = "" var followContent = "" var localtion = "" var localtionAddress = "" // 当先输入完条跳转页面时,ding'j var userId = this.data.userId wx.getStorage({ key: 'common', success: function(res) { name = res.data.name tel = res.data.tel company = res.data.company money = res.data.money followContent = res.data.followContent localtion = res.data.location, localtionAddress = res.data.locationAddress console.log(res.data) if (name == "" || tel == "" || company == "" || money == "" || followContent == "" || localtion == "") { wx.showToast({ title: '内容需要填写完整', icon: 'none' }) return; } wx.getStorage({ key: 'xhyx', success: function(res) { kehu = res.data[1] wx.getStorage({ key: 'dataType', success: function(res) { type = res.data[1], wx.getStorage({ key: 'selobject', success: function(res) { var date = that.data.date + that.data.time; console.log(date) selobject = res.data[1] if (kehu == "" || type == "" || selobject == ""){ wx.showToast({ title: '内容需要填写完整', icon: 'none' }) return; } wx.showModal({ title: '操作提示', content: '确定添加该成员吗?', success: function (res) { if (res.confirm) {//这里是点击了确定以后 wx.request({ //获取openid接口12 url: app.globalUrl +'customer/addcustomer', data: { customerName: name, customerPhone: tel, customerCompany: company, customerIntentionId: kehu, customerFlowModeId: type, customerProjectId: selobject, projectAmount: money, userId: userId, customerFollowContent: followContent, appointment: date }, method: "POST", success: function (res) { console.log(res.data) if(res.data.state == 0){ wx.navigateBack({ deIta: 1 }) wx.removeStorage({ key: 'common', }) wx.removeStorage({ key: 'xhyx', }) wx.removeStorage({ key: 'dataType', }) wx.removeStorage({ key: 'selobject', }) }else{ wx.showToast({ title:res.data.message, icon:'none' }) } } }) } else {//这里是点击了取消以后 console.log('用户点击取消') } } }) }, }) }, }) }, }) }, }) }, /** * 生命周期函数--监听页面显示 */ onShow: function(options) { var that = this; // 客户意向 wx.getStorage({ key: 'xhyx', success(res) { console.log(res.data) that.setData({ content: res.data[0], }) } }) // 更近方式 wx.getStorage({ key: 'dataType', success(res) { console.log(res.data) that.setData({ way: res.data[0], }) } }) // 所属项目 wx.getStorage({ key: 'selobject', success(res) { console.log(res.data) that.setData({ project: res.data[0], }) } }) //name,tel,company,money的存储 wx.getStorage({ key: 'common', success(res) { that.setData({ name: res.data.name, tel: res.data.tel, company: res.data.company, money: res.data.money, followContent: res.data.followContent }) console.log(res.data) } }) }, /** * 生命周期函数--监听页面初次渲染完成 */ /** * 生命周期函数--监听页面加载 */ onLoad: function() { myPage = getCurrentPages()[0] var that = this wx.getStorage({ key: 'loginSign', success: function (res) { that.setData({ userId:res.data.userId }) }, }) var obj = dateTimePicker.dateTimePicker(this.data.startYear, this.data.endYear); var obj1 = dateTimePicker.dateTimePicker(this.data.startYear, this.data.endYear); // 精确到分的处理,将数组的秒去掉 var lastArray = obj1.dateTimeArray.pop(); var lastTime = obj1.dateTime.pop(); this.setData({ dateTime: obj.dateTime, dateTimeArray: obj.dateTimeArray, dateTimeArray1: obj1.dateTimeArray, dateTime1: obj1.dateTime }); }, changeDate(e) { this.setData({ date: e.detail.value }); }, changeTime(e) { this.setData({ time: e.detail.value }); }, changeDateTime(e) { this.setData({ dateTime: e.detail.value }); }, changeDateTime1(e) { this.setData({ dateTime1: e.detail.value }); }, changeDateTimeColumn(e) { var arr = this.data.dateTime, dateArr = this.data.dateTimeArray; arr[e.detail.column] = e.detail.value; dateArr[2] = dateTimePicker.getMonthDay(dateArr[0][arr[0]], dateArr[1][arr[1]]); this.setData({ dateTimeArray: dateArr, dateTime: arr }); }, changeDateTimeColumn1(e) { var arr = this.data.dateTime1, dateArr = this.data.dateTimeArray1; arr[e.detail.column] = e.detail.value; dateArr[2] = dateTimePicker.getMonthDay(dateArr[0][arr[0]], dateArr[1][arr[1]]); this.setData({ dateTimeArray1: dateArr, dateTime1: arr }); }, /** * 生命周期函数--监听页面隐藏 */ // onHide: function() { // var that = this // wx.setStorage({ // key: 'common', // data: { // "name": this.data.name, // "tel": this.data.tel, // "company": this.data.company, // "money": this.data.money, // "followContent": this.data.followContent || "" // }, // }) // wx.getStorage({ // key: 'common', // success(res) { // that.setData({ // name: res.data.name, // tel: res.data.tel, // company: res.data.company, // money: res.data.money, // followContent:res.data.followContent // }) // console.log(res.data) // } // }) // }, /** * 生命周期函数--监听页面卸载 */ onUnload: function() { wx.removeStorage({ key: 'common', }) wx.removeStorage({ key: 'xhyx', }) wx.removeStorage({ key: 'dataType', }) wx.removeStorage({ key: 'selobject', }) }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function() { }, /** * 用户点击右上角分享 */ onShareAppMessage: function() { }, }) 语音识别页面,redirectTo进入语音识别页面,文字也可以渲染,navigateT进入语音识别页面,文字无法渲染,this.followContent为空
2019-01-08我也来留下我对globalData和strorage的理解吧,我想讲的是这两者保留时长的区别。 前者:当小程序进入后台一定时间或系统占用资源过高后会被销毁,所谓的后台,就是用户点击小程序左上角的关闭或按HOME键离开微信。一直到小程序被销毁后,globalData就会被清空,也就是下次打开时会被初始化。 后者:缓存可以一直存在,直到你在‘微信’-->下拉出我的小程序,或者在‘发现’-->‘小程序’,从这两处地方删除你用过的小程序,否则缓存的数据会一直在。
重新编译globalData被清空在app.js中接口请求成功后设置globalData,然而在开发者工具上刷新重新编译,刚才设置的globalData就清空了? 对比storage,两者哪个更合适呀,感觉每次用getStorage去拿数据也怪尴尬的 [代码] [代码] [代码]// 函数体[代码] [代码]let _this = this[代码] [代码]this[代码][代码].ajax(initObj)[代码] [代码] .then(res => {[代码] [代码] [代码][代码]_this.globalData.initInfo = res[代码][代码] [代码][代码]for[代码] [代码](let key [代码][代码]in[代码] [代码]res) {[代码][代码] [代码][代码]if[代码] [代码](res.hasOwnProperty(key)) {[代码][代码] [代码][代码]wx.setStorageSync(key, res[key])[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码] [代码][代码] }) // 全局变量 [代码]globalData: {[代码][代码] [代码]initInfo: {}[代码] [代码][代码]}[代码]
2018-11-27[图片] 这是我寻找腾讯客服,通过人工问答寻找到的结果,刚刚还找到了个腾讯客服的号码07558376556,打过去移动告诉我这个号码是有误的,这就是我最新的消息,留下来希望对大家有所帮助
小程序注册之汇款账号为非对公存款客户账户大家好,我现在遇到个关于小程序申请的问题,如标题那样,在到打款那步时,收款公司名是:深圳市腾讯计算机系统有限公司,然后人事使用对公账号根据25位汇款账号打款时,出现错误提示,提示该25位账号为非对公存款客户账户,截止今天2018年11月26号早上10点还是这样,请问大家有遇到过这种情况吗?
2018-11-26