- 如何开发一款翻译特定外网资料的小程序?
我这里有一个外国资料网站 https://d4builds.gg/ 网站是支持手机端的。 我想把它翻译成中文,然后做成小程序。 我的想法是直接内嵌这个网页,然后把英文翻译成中文。这样网站更新后,我也不用重新更新。 求指点一下大致的技术路线。 我自己开发过一个小程序,有一些经验。 这件事情如果很繁琐或者有技术含量也可以外包。
2023-04-02 - 云函数检测图片img_sec_check,总是返回47001 ?
总是返回数据格式错误 "errcode":47001,"errmsg":"data format error 求大神帮我看下代码 // 云函数入口文件 const cloud = require('wx-server-sdk') var rp = require("request-promise") const APPID = 'wxxxxa' const APPSECRET = '9xxxxx6' cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境 // 云函数入口函数 exports.main = async (event, context) => { // 1 获取ACCESS_TOKEN // getAccessToken请求参数 let options = { uri: `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${APPSECRET}`, } let result = await rp(options) // 解析返回值,获取ACCESS_TOKEN let ACCESS_TOKEN = JSON.parse(result).access_token // 2 内容安全接口 //下载图片 //从云存储取出文件或者直接从用户选择上传而来 const res = await cloud.downloadFile({ fileID: event.fileID }); //上传图片 const upload_options = { method: 'POST', uri: `https://api.weixin.qq.com/wxa/msg_sec_check?access_token=${ACCESS_TOKEN}`, formData: { name: '这里应该填什么?', file: { value: res.fileContent, //res.fileContent是256进制的图片文件 options: { filename: 'check.png', contentType: 'png' } } }, headers: { 'content-type': 'multipart/form-data' } }; //检测图片 const checkRes = await rp(upload_options); return checkRes; }
2022-09-29 - wx.createInnerAudioContext 在IOS设备上不能播放?
// 创建金币声音的实例 const innerAudioContext = wx.createInnerAudioContext({ useWebAudioImplement: true }) innerAudioContext.src = 'cloud://runrundiablo-3g6go4zkd59cde2f.7275-runrundiablo-3g6go4zkd59cde2f-1313985133/resourse/coin.wav' test() { // 播放声音 innerAudioContext.play() }, 开发者工具可以正常播放,在iphoneX iphone11上就不能播放 在app.js onLaunch增加了全局设置也不起作用 wx.setInnerAudioOption({ mixWithOther: true, obeyMuteSwitch: false, success: function (e) { console.log(e) }, fail: function (e) { console.log(e) } }) 翻了一下帖子,好像是个老毛病了,我就是播放一个1秒的音效,有没有其他方案可以绕过这个组件?
2022-09-26 - 页面初始化数据可以用app.globalData赋值吗?
data: { energy: app.globalData.energy, }, 这样可以吗? 在开发者工具没问题,真机调试就会读不到数据。 还是说必须要在onLoad里this.setData
2022-09-23 - 小程序的官方文档搜索能不能优化一下?
什么都搜不到,想搜个 wx:for 居然找不到
2022-09-13 - 小程序的变量赋值机制是怎样的?
onLoad() { var that = this wx.cloud.database().collection('post').get({ success(res){ console.log('从数据库获取到帖子列表信息',res) // 格式化時間 var list = res.data for(var i in list) { list[i].time = util.formatTime(new Date(list[i].time)) } that.setData({ postList: res.data }) } }) }, 这段代码的逻辑是: 1 从数据库中取到帖子的数据 2 for循环去格式化每个帖子的时间 代码可以达到预期 我困惑的是,为什么修改变量list,会导致res.data里的值发生变化?
2022-09-08 - util.formatTime is not a function?
为了格式化时间,我自己抄了一份util.js 代码如下: // util.js const formatTime = date => { var year = date.getFullYear() var month = date.getMonth() + 1 var day = date.getDate() var hour = date.getHours() var minute = date.getMinutes() var second = date.getSeconds() return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':') } const formatNumber = n => { n = n.toString() return n[1] ? n : '0' + n } 引用如下: // list.js const util = require("../../utils/util") Page({ onLoad() { t = util.formatTime(new Date(1662628006485)) console.log(t) } }) 报错如下: TypeError: util.formatTime is not a function 我是哪里搞错了么?
2022-09-08 - app.js中的函数如何改成promise,在page.onLoad中可以await?
在app.js中有个函数,往数据库里插入一条用户信息。 在page.onLoad的中,我希望可以await 这个函数执行完。 我的代码应该如何改? app.js: // 添加一条用户信息 userRegister() { // 调用云函数添加用户信息 var value = wx.getStorageSync('openId') wx.cloud.callFunction({ name: 'addUser', data: { _id: value, } }) .then(res => { console.log('调用云函数添加用户成功', res) }) .catch(err => { console.log('用户已注册,写入数据库不成功') }) }, home.js onLoad: async function () { await getApp().userRegister() console.log('执行后面的代码,比如查询用户数据') }, 似乎我应该改造userRegister()?
2022-09-02 - 没有在数据库找到openId的时候,不把获取头像和昵称的业务逻辑写在catch里,应该怎么处理?
尝试把wx.getUserProfile写在catch里,代码不生效。 想请教一下,这里的逻辑应该如何写? handleLogin() { // 显示loading提示框 wx.showLoading({ title: '', }); // 调用云函数获取openId wx.cloud.callFunction({ name: 'getOpenId', }) .then((res) => { // 修改openId标记,记录openId this.setData({ haveGetOpenId: true, openId: res.result.openid }); // 把openId保存到缓存 wx.setStorageSync('openId', res.result.openid) wx.hideLoading(); }) // 查询用户是否在数据库中 .then(() => { // 在数据库中查询openId db.collection('users').doc(this.data.openId).get() .then(res => { // res.data 包含该记录的数据 console.log(res.data) this.setData({ haveFindUser: true }) }) .catch((err) => { // 没有查到openId, 小程序将获取头像、昵称 console.log(err); }) }) .then(() => { // 如果没有找到OpenId ,就调用wx.getUserProfile,请问这个逻辑应该怎么写? // if (!this.data.haveFindUser) { // console.log('xxxx没找到', this.data.haveFindUser) // } else { // console.log('找到了', this.data.haveFindUser) // } // 用云函数将获取到的openId和用户信息写入数据库 // this.userRegister() }) .catch((err) => { wx.hideLoading(); console.log(err) }); },
2022-09-02 - 获取openid之前到底需要获取code吗?
在wx.login的描述是先获取code,然后再和appid和appsecret一起发送请求,然后返回openid https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 但是在云函数getOpenID / cloud.getWXContext() 中直接就可以获取到openid,不需要code也可以 所以如何理解,到底是否需要先获取code,还是说云函数免鉴权? 求解惑,谢谢
2022-08-31