- iphone11 进入小程序直播黑屏
iphone11 进入小程序直播黑屏 其他机型正常 [图片] 我们只做了了跳转,进入了插件的小程序后黑屏,有声音
2020-08-04 - 小程序直播,iphone11进入黑屏,怎么解决?
程序直播,iphone11进入黑屏,怎么解决? 代码中只做了了跳转 [图片]
2020-08-04 - 小程序直播,Iphone11黑屏.其他机型正常,是后台服务出错了吗?
程序直播,Iphone11黑屏.其他机型正常,是后台服务出错了吗? 代码中只做了了跳转 [图片]
2020-08-04 - 当使用移动应用调启小程序后,在无登录的状态下,无法调用云函数或云相关能力?
场景: 安卓APP调用接口调启微信小程序弹出登录页面,但取消登录进入小程序后调用wx.cloud相关能力报错:operateWxdata:fail:not login问: 在安卓APP调启微信小程序的这种场景下.能否不用个人的微信扫描二维码进入登录态,而直接进入小程序使用wx.cloud()相关功能 PS: 只要不需要人扫码,默认登录即可
2020-05-30 - BUG:组件Live-player中的sound-mode,在其他人重进房间后将失效?
我在使用实时音视频做多人聊天的时候发现 当我房间进入两个或以上的时候,对方退出再进入房间会导致另一个人的sound-mode失效 即是我写死了耳麦模式也没有用
2020-05-30 - 云开发,本地调试只要开启就能成功调用云函数,关了调试,立刻失败报错?
报错内容: errMsg: "Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID 18b3e866-5eb7-11ea-b3ea-5254007aa7a1, cloud function service error code -504002, error message Unexpected token {; at cloud.callFunction api; " 代码片段: index.js // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() const common=require('./common'); const UserServiceImpl = require('./service/userServiceImpl').UserServiceImpl; const userServiceImpl = new UserServiceImpl(); // 云函数入口函数 exports.main = async (event, context) => { try{ if(event.url==='userServiceImpl.setUserInfo'){ return await userServiceImpl.setUserInfo(event.data) }else{ return common.getCommonRes({}, "error", "未找到API:" + event.url) } }catch{ return common.getCommonRes({}, "error", "未知异常") } return event } common: let app={ globalData:{ controllerLog:true } } /** * 下划线转换驼峰 * @param {*} name */ const toHump = function (obj) { try { if (Object.prototype.toString.call(obj) === "[object Object]") { let tempObj={}; for(let key in obj){ let upperKey=key.replace(/\_(\w)/g, function (all, letter) { return letter.toUpperCase(); }); tempObj[upperKey]=obj[key]; } return tempObj; }else{ return obj } } catch{ return obj } } const getCommonRes = function (data, type = "success", msg = "操作成功") { let commonRes = { code: null, data: toHump(data), msg: msg } try { if (type === "success") { commonRes.code = "200"; } else if (type === "error") { commonRes.code = "500"; } } catch{ commonRes.code = "10086"; } return commonRes; } const checkPhoneReg = function (phone) { try { return (/^1[3456789]\d{9}$/.test(phone)); } catch{ return false } } const printLog = function (type, msg) { if (app.globalData[type]) { try { console.log(type + ">>>>>" + JSON.stringify(msg)) } catch{ console.log(type + ">>>>>" + msg) } } } module.exports = { getCommonRes, checkPhoneReg, printLog } databaseCommon: // 云函数入口文件 const cloud = require('wx-server-sdk') const env = "dev-qyj77"; cloud.init(); const db = cloud.database(); /** * 驼峰转换下划线 * 获取与数据库交互的entity * @param {*} name */ const toLine = function (obj) { try { if (Object.prototype.toString.call(obj)==="[object Object]") { let tempObj={}; for(let key in obj){ let lowerKey=key.replace(/([A-Z])/g,"_$1").toLowerCase() tempObj[lowerKey]=obj[key]; } return tempObj; } else { return obj } } catch{ return obj } } /** * 从获取的对象中,抽出实体类的内容(LIST版本) * @param {*} entity * @param {*} obj */ const getCommonList = function (entity, list) { let res = []; try { list.forEach(element => { res.push(getCommonObj(entity, element)); }); } catch{ } return res; } /** * 从获取的对象中,抽出实体类的内容 * @param {*} entity * @param {*} obj */ const getCommonObj = function (entity, obj) { let resObj = entity; try { let tempEntity = Object.assign({}, entity, toLine(obj)) let resultEntity = {}; for (let key in entity) { // if(obj[key]!==undefined){ resultEntity[key] = tempEntity[key]; // } } resObj = resultEntity; } catch{ } return resObj; } const getUserController = function () { return db.collection("user"); } const getOrderController = function () { return db.collection("order"); } module.exports = { getUserController, getCommonList, getCommonObj, getOrderController, } UserController: const db = require("../databaseCommon"); const printLog = require("../common").printLog; const entity = require("../entity/user.js").user; const controller = db.getUserController(); const logType = "controllerLog"; class UserController { constructor() { } /** * 查询所有用户信息 * */ getAllUserInfo() { return new Promise((success, error) => { controller.get().then(res => { let returnRes = db.getCommonList(entity, res.data) success(returnRes) }) }) } /** * 根据ID查询用户信息 */ getUserInfoById(id) { return new Promise((success, error) => { controller.where({ _id: id }).get().then(res => { printLog(logType, "=====根据ID查询用户信息=====") if (res.data.length > 1) { printLog(logType, "=====根据ID查询用户信息,查询出多条信息!默认选择第一条=====") printLog(logType, res.data) } let returnRes = db.getCommonObj(entity, res.data[0]) printLog(logType, returnRes) success(returnRes) }) }); } /** * 根据手机号查询用户信息 */ getUserInfoByPhone(phone) { return new Promise((success, error) => { controller.where({ phone: phone }).get().then(res => { printLog(logType, "=====根据手机号查询用户信息=====") if (res.data.length > 1) { printLog(logType, "=====根据手机号查询用户信息,查询出多条信息!默认选择第一条=====") printLog(logType, res.data) } let returnRes = db.getCommonObj(entity, res.data[0]) printLog(logType, returnRes) success(returnRes) }); }) } /** * 根据实体类插入用户信息 */ setUserInfo(obj) { return new Promise((success, error) => { try { let resultEntity = db.getCommonObj(entity, obj); delete resultEntity._id; controller.add({ data: resultEntity }).then(res => { printLog(logType, "=====插入用户信息:成功=====") printLog(logType, res) printLog(logType, resultEntity) success() }).catch(res => { printLog(logType, res) }) } catch (res) { error(res) } }) } /** * 以ID为key,根据实体类更新用户信息 */ updateUserInfo(obj) { return new Promise((success, error) => { try { let { _id, ...resultEntity } = db.getCommonObj(entity, obj); controller.doc(_id).update({ data: resultEntity }).then(res => { printLog(logType, "=====更新用户信息:成功=====") printLog(logType, resultEntity) success() }).catch(res => { printLog(logType, res) }) } catch (res) { error(res) } }) } } module.exports = { UserController, } // export default UserController; userServiceImpl: const controller = require("../controller/userController").UserController; const common = require("../common"); const userController = new controller(); class UserServiceImpl { /** * 获取所有用户信息 */ getAllUserInfo() { return new Promise((success, error) => { userController.getAllUserInfo().then(res => { success(common.getCommonRes(res)) }) }) } /** * 根据ID查询用户信息 */ getUserInfoById(id) { return new Promise((success, error) => { userController.getUserInfoById(id).then(res => { success(common.getCommonRes(res)) }) }) } /** * 根据手机号查询用户信息 */ getUserInfoByPhone(phone) { return new Promise((success, error) => { userController.getUserInfoById(id).then(res => { success(common.getCommonRes(res)) }) }) } /** * 根据实体类插入用户信息; * 已手机号为key,无则新建,有则更新 */ setUserInfo(obj) { return new Promise((success, error) => { // 判断手机号正确性 if (common.checkPhoneReg(obj.phone)) { // 根据手机号查找用户信息 userController.getUserInfoByPhone(obj.phone).then(res => { obj.updated = new Date(); if (res.phone) { let postObj = Object.assign(res, obj); userController.updateUserInfo(postObj).then(() => { success(common.getCommonRes()); }) } else { obj.created = new Date(); userController.setUserInfo(obj).then(res => { success(common.getCommonRes()); }) } }) } else { success(common.getCommonRes({}, "error", "手机号码错误")) } }) } } module.exports = { UserServiceImpl, } // export default UserServiceImpl;
2020-03-05 - 我选择[工具->视频客服]会影响我做多人视频会议类的小程序吗?
<live-player>和<live-pusher>这两个组件的问题: 需求: 想做一个多人视频会议类的小程序 问题: 我选择[工具->视频客服]会影响我做多人视频会议类的小程序吗? 或者说我做多人视频会议类,选择什么类目比较好? PS:这两个组件所需要的类目大部分都需要对应的证书,除了工具->视频客服,但是[工具->视频客服]上面的描述又说只能做1对1
2019-11-23