
HBX中uniapp项目 使用微信小程序云开发,不使用uniCloud。
开始看了一下uniCloud 的使用,文档倒是很全。但要使用其扩展的client-DB服务,闲麻烦。想直接用微信小程序云开发的话,按下面步骤做就好了!
步骤
1、veu.config.js 中推荐安装copy-webpack-plugin 5.0.0 版本。uniapp 框架文档有说明 vue-config
打开终端运行 npm 安装版本
npm install copy-webpack-plugin@5.0.0
2、创建你自己云函数目录文件。我设置的:
wxcloud/cloudfunctions
3、vue-config-js 中配置 编译copy文件到build目录。注意 空目录可能不会拷贝(后续你可用创建函数文件就会拷贝了)。 以下是我目前的配置:
const CopyWebpackPlugin = require("copy-webpack-plugin")
const path = require("path")
module.exports = {
// 配置路径别名
configureWebpack: {
devServer: {
disableHostCheck: true
},
// 配置支持 微信小程序的 云开发
plugins: [
new CopyWebpackPlugin([{
from: path.join(__dirname, 'wxcloud/cloudfunctions'),
to: path.join(__dirname, 'unpackage', 'dist', process.env.NODE_ENV === 'production' ? 'build' : 'dev', process.env
.UNI_PLATFORM, 'wxcloud/cloudfunctions'),
}, ]),
]
}
}
4、按照微信云开发 我的第一个云函数 创建你的hbx中的云函数文件
包含3个文件:config.json、index.js、package.json 。文件具体内容 你可以在微信开发工具里面 右键自己创建一个云函数 看看微信生成的文件内容。
5、HBX写好云函数后(3个文件都需要),编译项目,文件会拷贝到微信开发工具。然后,在微信开发工具里面右键同步你的小程序云函数。前提是你创建了和绑定了云环境。
最后,HBX 里面可以写调用云函数,执行测试就好了!
//初始化你的云环境
wx.cloud.init({
// 小程序云环境ID
env: '****',
traceUser: true
})
// 测试云函数调用
wx.cloud.callFunction({
// 云函数名称
name: 'test',
// 传给云函数的参数
data: {},
success: function(res) {
console.log(res);
},
fail: console.error
});
运行结果,
{errMsg: "cloud.callFunction:ok", result: {…}, requestID: "a3fce32a-0f80-11eb-87f2-5254001c5def"}
总结:配置了一个编译时拷贝云函数目录到微信开发目录而已; 其他云开发环境设置等在微信小程序云开发里设置就完事儿了。代码编写可以在HBX 里面完成。
开始看了一下uniCloud 的使用,文档倒是很全。但要使用其扩展的client-DB服务,闲麻烦。想直接用微信小程序云开发的话,按下面步骤做就好了!
步骤
1、veu.config.js 中推荐安装copy-webpack-plugin 5.0.0 版本。uniapp 框架文档有说明 vue-config
打开终端运行 npm 安装版本
npm install copy-webpack-plugin@5.0.0
2、创建你自己云函数目录文件。我设置的:
wxcloud/cloudfunctions
3、vue-config-js 中配置 编译copy文件到build目录。注意 空目录可能不会拷贝(后续你可用创建函数文件就会拷贝了)。 以下是我目前的配置:
const CopyWebpackPlugin = require("copy-webpack-plugin")
const path = require("path")
module.exports = {
// 配置路径别名
configureWebpack: {
devServer: {
disableHostCheck: true
},
// 配置支持 微信小程序的 云开发
plugins: [
new CopyWebpackPlugin([{
from: path.join(__dirname, 'wxcloud/cloudfunctions'),
to: path.join(__dirname, 'unpackage', 'dist', process.env.NODE_ENV === 'production' ? 'build' : 'dev', process.env
.UNI_PLATFORM, 'wxcloud/cloudfunctions'),
}, ]),
]
}
}
4、按照微信云开发 我的第一个云函数 创建你的hbx中的云函数文件
包含3个文件:config.json、index.js、package.json 。文件具体内容 你可以在微信开发工具里面 右键自己创建一个云函数 看看微信生成的文件内容。
5、HBX写好云函数后(3个文件都需要),编译项目,文件会拷贝到微信开发工具。然后,在微信开发工具里面右键同步你的小程序云函数。前提是你创建了和绑定了云环境。
最后,HBX 里面可以写调用云函数,执行测试就好了!
//初始化你的云环境
wx.cloud.init({
// 小程序云环境ID
env: '****',
traceUser: true
})
// 测试云函数调用
wx.cloud.callFunction({
// 云函数名称
name: 'test',
// 传给云函数的参数
data: {},
success: function(res) {
console.log(res);
},
fail: console.error
});
运行结果,
{errMsg: "cloud.callFunction:ok", result: {…}, requestID: "a3fce32a-0f80-11eb-87f2-5254001c5def"}
总结:配置了一个编译时拷贝云函数目录到微信开发目录而已; 其他云开发环境设置等在微信小程序云开发里设置就完事儿了。代码编写可以在HBX 里面完成。
收起阅读 »
自学编程应该去哪里?
自学编程首先 JSRUN
JSRUN 是一个强大功能的在线编辑器,更是一个编程学习网站
JSRUN是支持在手机或平板上编写代码的编辑器,可以在线运行Node.js、PHP、Java、C语言、C++、Python、Go语言、Kotlin、Rust、Dart、R语言、C#、Ruby、objc、F#、VB.NET、Swift、clojure、Groovy、Lua、Pascal、Perl、Shell、Erlang、Scala、Haskell、Nim、Lisp、OCaml、Racket 30种编程语言。
同时也有以上三十多种编程语言全套教程,更有十多种开发框架教程,JSRUN 为大家提供了免费学习编程的机会
JSRUN配置高性能服务器来运行代码,希望能和闪电一样快速。同时JSRUN支持vue.js/angular.js的在线运行编辑器 、手机端js编辑器 js在线运行工具, 支持babel进行ES6开发 。
JSRUN拥有功能强大的HTML在线运行编辑器、JS在线运行编辑器、CSS在线运行编辑器 , 目前已经有3万多工程师在JSRUN留下了优秀的开源代码,他们的分享是您前端开发和学习的宝藏, 可以免费保存、分享js源码,提供Embed服务 , 独创的实时多屏预览开发,JSRUN成倍提高开发调试效率,比jsfiddle/codepen更强大。
自学编程首先 JSRUN
JSRUN 是一个强大功能的在线编辑器,更是一个编程学习网站
JSRUN是支持在手机或平板上编写代码的编辑器,可以在线运行Node.js、PHP、Java、C语言、C++、Python、Go语言、Kotlin、Rust、Dart、R语言、C#、Ruby、objc、F#、VB.NET、Swift、clojure、Groovy、Lua、Pascal、Perl、Shell、Erlang、Scala、Haskell、Nim、Lisp、OCaml、Racket 30种编程语言。
同时也有以上三十多种编程语言全套教程,更有十多种开发框架教程,JSRUN 为大家提供了免费学习编程的机会
JSRUN配置高性能服务器来运行代码,希望能和闪电一样快速。同时JSRUN支持vue.js/angular.js的在线运行编辑器 、手机端js编辑器 js在线运行工具, 支持babel进行ES6开发 。
JSRUN拥有功能强大的HTML在线运行编辑器、JS在线运行编辑器、CSS在线运行编辑器 , 目前已经有3万多工程师在JSRUN留下了优秀的开源代码,他们的分享是您前端开发和学习的宝藏, 可以免费保存、分享js源码,提供Embed服务 , 独创的实时多屏预览开发,JSRUN成倍提高开发调试效率,比jsfiddle/codepen更强大。
收起阅读 »
更新 HBuilderX 2.9.0+ 后 rpx(upx)、rem 样式变形的处理办法
使用 rem 的部分变形
HBuilderX 2.9.0+ 相关更新:调整根字体大小为系统默认大小与微信小程序平台一致
调整后 rem 默认大小不再为 窗口宽度/20,改为了浏览器(webview)默认的字体大小,一般为 16px
对于历史项目如需不改动代码保持原来的样式可以参考如下操作:
App
编辑 __uniappview.html 文件(路径:/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-app-plus/template/v3/__uniappview.html)
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<script>
var __UniViewStartTime__ = Date.now();
document.addEventListener('DOMContentLoaded', function() {
document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'
})
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>View</title>
<link rel="stylesheet" href="view.css" />
</head>
<body>
<div id="app"></div>
<script src="__uniappes6.js"></script>
<script src="view.umd.min.js"></script>
<script src="app-view.js"></script>
</body>
</html>
H5
项目内增加 template.h5.html 文件,并配置在 manifest.json -> h5 内 `"template" : "template.h5.html"
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>
<%= htmlWebpackPlugin.options.title %>
</title>
<script>
document.addEventListener('DOMContentLoaded', function() {
document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'
})
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />
</head>
<body>
<noscript>
<strong>Please enable JavaScript to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
使用 rpx(upx) 的部分变形
HBuilderX 2.9.0+ 还新增了 rpx(upx) 的范围配置,如因 rpx(upx) 在宽屏的处理问题异常,可以设置 rpxCalcMaxDeviceWidth 为 99999,具体参考:
- 【重要】App平台、H5平台 新增 rpx(upx) 配置,默认限定了 rpx(upx) 生效的最大屏幕宽度为 px。可在 pages.json -> globalStyle 配置 rpxCalcMaxDeviceWidth、rpxCalcBaseDeviceWidth、rpxCalcIncludeWidth 等参数 详情
使用 rem 的部分变形
HBuilderX 2.9.0+ 相关更新:调整根字体大小为系统默认大小与微信小程序平台一致
调整后 rem 默认大小不再为 窗口宽度/20,改为了浏览器(webview)默认的字体大小,一般为 16px
对于历史项目如需不改动代码保持原来的样式可以参考如下操作:
App
编辑 __uniappview.html 文件(路径:/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-app-plus/template/v3/__uniappview.html)
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<script>
var __UniViewStartTime__ = Date.now();
document.addEventListener('DOMContentLoaded', function() {
document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'
})
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>View</title>
<link rel="stylesheet" href="view.css" />
</head>
<body>
<div id="app"></div>
<script src="__uniappes6.js"></script>
<script src="view.umd.min.js"></script>
<script src="app-view.js"></script>
</body>
</html>
H5
项目内增加 template.h5.html 文件,并配置在 manifest.json -> h5 内 `"template" : "template.h5.html"
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>
<%= htmlWebpackPlugin.options.title %>
</title>
<script>
document.addEventListener('DOMContentLoaded', function() {
document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'
})
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />
</head>
<body>
<noscript>
<strong>Please enable JavaScript to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
使用 rpx(upx) 的部分变形
HBuilderX 2.9.0+ 还新增了 rpx(upx) 的范围配置,如因 rpx(upx) 在宽屏的处理问题异常,可以设置 rpxCalcMaxDeviceWidth 为 99999,具体参考:
收起阅读 »
- 【重要】App平台、H5平台 新增 rpx(upx) 配置,默认限定了 rpx(upx) 生效的最大屏幕宽度为 px。可在 pages.json -> globalStyle 配置 rpxCalcMaxDeviceWidth、rpxCalcBaseDeviceWidth、rpxCalcIncludeWidth 等参数 详情

制作自定义基座打包失败
失败日志:https://service.dcloud.net.cn/build/errorLog/edbbb990-0f5a-11eb-810a-1bdd8e587e9e
第二次失败日志:https://service.dcloud.net.cn/build/errorLog/bce51220-0f5b-11eb-accd-e14cc357f5c1
使用HBuilder X2.8.13打包成功
使用HBuilder X2.9.3打包失败
失败日志:https://service.dcloud.net.cn/build/errorLog/edbbb990-0f5a-11eb-810a-1bdd8e587e9e
第二次失败日志:https://service.dcloud.net.cn/build/errorLog/bce51220-0f5b-11eb-accd-e14cc357f5c1
使用HBuilder X2.8.13打包成功
使用HBuilder X2.9.3打包失败
收起阅读 »
5+App Android、iOS 截屏任意区域(解决iOS机型下clip-top无效bug )
Android机型,截图正常
iOS机型,bitmap.save时,clip的top参数无效,但在plus.webview.currentWebview().draw时,是有效的。
源码示例 https://blog.csdn.net/qq285679784/article/details/109001187
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title></title>
<link href="css/mui.min.css" rel="stylesheet" />
</head>
<body>
<div>
<img src="http://p1.bqimg.com/567571/cedca293f269ba11.jpg" width="100%" />
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
</div>
<script src="js/mui.min.js"></script>
<script src="js/drawScreen.js"></script>
<script type="text/javascript" charset="utf-8">
mui.init();
mui.plusReady(function() {
// 截屏图片比例 5:4
let descWidth = document.body.clientWidth;
let descHeight = descWidth / (5 / 4);
var options = {
successCB: function(e) {
console.log(JSON.stringify(e))
},
errorCB: function(e) {
console.log(JSON.stringify(e))
},
quality: 80,
clip: {
top: '20px',
left: '0px',
width: descWidth,
height: descHeight
}
}
drawScreen(options);
});
</script>
</body>
</html>
/* drawScreen.js
参数说明:
参数名 类型 说明 默认值 是否必选
successCB | Function | 成功回调函数 | | Y
errorCB | Function | 失败,回调函数 | Function |
fileName | String | 文件名,不需后缀名 | 当前时间戳 |
imgID | String | 原生图片ID | 当前时间戳 |
overwrite | Boolean | 是否覆盖 | true |
format | String | 保存的格式 | PNG |
quality | Number | 保存质量,1-100,1最低,100最高 | 50 |
clip | Object | 指定截屏区域 | {top:’0px’,left:’0px’,width:’100%’,height:’100%’}
*/
var drawScreen = function(options) {
options = {
successCB: options.successCB || function() {},
errorCB: options.errorCB || function() {},
fileName: options.fileName || Date.parse(new Date()),
imgID: options.imgID || String(Date.parse(new Date())),
overwrite: options.overwrite || true,
format: options.format || 'jpg',
quality: options.quality || 50,
clip: options.clip || {
top: '0px',
left: '0px',
width: '100%',
height: '100%'
}
}
var self = plus.webview.currentWebview();
var bitmap = new plus.nativeObj.Bitmap(options.imgID);
//绘制截图
self.draw(bitmap, function() {
// 保存Bitmap图片
bitmap.save('_doc/' + options.fileName + '.' + options.format, {
overwrite: options.overwrite,
format: options.format,
quality: options.quality,
clip: options.clip //iOS机型,bitmap.save时,clip的top参数无效,但在self.draw时,是有效的。
}, function(i) {
//销毁Bitmap图片
bitmap.clear();
options.successCB({
success: 'success',
details: i.target
});
}, function(e) {
bitmap.clear();
options.errorCB({
error: '图片保存失败',
details: e
});
});
}, function(e) {
options.errorCB({
error: '截屏绘制失败',
details: e
});
},{
clip: options.clip //绘制截图时,设置clip,解决iOS机型下clip-top无效bug
});
}
Android机型,截图正常
iOS机型,bitmap.save时,clip的top参数无效,但在plus.webview.currentWebview().draw时,是有效的。
源码示例 https://blog.csdn.net/qq285679784/article/details/109001187
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title></title>
<link href="css/mui.min.css" rel="stylesheet" />
</head>
<body>
<div>
<img src="http://p1.bqimg.com/567571/cedca293f269ba11.jpg" width="100%" />
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
<p>dddd</p>
</div>
<script src="js/mui.min.js"></script>
<script src="js/drawScreen.js"></script>
<script type="text/javascript" charset="utf-8">
mui.init();
mui.plusReady(function() {
// 截屏图片比例 5:4
let descWidth = document.body.clientWidth;
let descHeight = descWidth / (5 / 4);
var options = {
successCB: function(e) {
console.log(JSON.stringify(e))
},
errorCB: function(e) {
console.log(JSON.stringify(e))
},
quality: 80,
clip: {
top: '20px',
left: '0px',
width: descWidth,
height: descHeight
}
}
drawScreen(options);
});
</script>
</body>
</html>
/* drawScreen.js
参数说明:
参数名 类型 说明 默认值 是否必选
successCB | Function | 成功回调函数 | | Y
errorCB | Function | 失败,回调函数 | Function |
fileName | String | 文件名,不需后缀名 | 当前时间戳 |
imgID | String | 原生图片ID | 当前时间戳 |
overwrite | Boolean | 是否覆盖 | true |
format | String | 保存的格式 | PNG |
quality | Number | 保存质量,1-100,1最低,100最高 | 50 |
clip | Object | 指定截屏区域 | {top:’0px’,left:’0px’,width:’100%’,height:’100%’}
*/
var drawScreen = function(options) {
options = {
successCB: options.successCB || function() {},
errorCB: options.errorCB || function() {},
fileName: options.fileName || Date.parse(new Date()),
imgID: options.imgID || String(Date.parse(new Date())),
overwrite: options.overwrite || true,
format: options.format || 'jpg',
quality: options.quality || 50,
clip: options.clip || {
top: '0px',
left: '0px',
width: '100%',
height: '100%'
}
}
var self = plus.webview.currentWebview();
var bitmap = new plus.nativeObj.Bitmap(options.imgID);
//绘制截图
self.draw(bitmap, function() {
// 保存Bitmap图片
bitmap.save('_doc/' + options.fileName + '.' + options.format, {
overwrite: options.overwrite,
format: options.format,
quality: options.quality,
clip: options.clip //iOS机型,bitmap.save时,clip的top参数无效,但在self.draw时,是有效的。
}, function(i) {
//销毁Bitmap图片
bitmap.clear();
options.successCB({
success: 'success',
details: i.target
});
}, function(e) {
bitmap.clear();
options.errorCB({
error: '图片保存失败',
details: e
});
});
}, function(e) {
options.errorCB({
error: '截屏绘制失败',
details: e
});
},{
clip: options.clip //绘制截图时,设置clip,解决iOS机型下clip-top无效bug
});
}
收起阅读 »

蓝蘑云直播实时音视频集成指南
准备:
DEMO运行示例
- 下载DEMO源码从插件市场下载,解压打开;
- 打开HBuild工具导入demo工程,从自己账号获取DCloud AppID;
- 获取蓝蘑云APPID,填入代码中 export const appId = ""
- 配置App原生插件;
- 配置HBuild android权限
android 6.0以上需要手动添加权限,我们sdk 提供接口获取权限接口
5.云打包
6.android demo 体验下载地址
注意事项
- 当前调试运行环境只支持真机调试运行,不能支持模拟器环境运行;
- 运行时确保app的摄像头和麦克风权限打开;如果加入房间失败,监听错误码为4007,代表无权限,需要在app权限设置里打开;
准备:
DEMO运行示例
- 下载DEMO源码从插件市场下载,解压打开;
- 打开HBuild工具导入demo工程,从自己账号获取DCloud AppID;
- 获取蓝蘑云APPID,填入代码中 export const appId = ""
- 配置App原生插件;
- 配置HBuild android权限
android 6.0以上需要手动添加权限,我们sdk 提供接口获取权限接口
5.云打包
6.android demo 体验下载地址
注意事项
- 当前调试运行环境只支持真机调试运行,不能支持模拟器环境运行;
- 运行时确保app的摄像头和麦克风权限打开;如果加入房间失败,监听错误码为4007,代表无权限,需要在app权限设置里打开;

蓝蘑云使用指南
概述:
maple-rtc 为蓝蘑云推出的直播&实时音视频系统,包括了直播,实时音频,视频,变声,美颜等功能,适用于娱乐,游戏,教育等实时场景中;Maple-RTC支持快速私有化部署,一键部署上线。
第一步:开通蓝蘑云服务
- 打开蓝蘑云用户管理后台,点击注册新用户
- 登录蓝蘑云用户管理后台,用刚注册的手机号码和密码登录管理后台
第二步:服务端创建应用AppID
- 点击创建新项目按钮,在弹出的对话框输入项目名称,点击立即创建;
- 获取APPID替换到项目中;
- 点击统计页面查看服务使用量;
收费标准
当前蓝蘑云提供1个月免费测试对接时间,让客户有充足时间对接测试,如果测试对接满意,需要联系商务开通正式服务商用,点击管理后台联系我们,可以联系到技术和商务;具体收费标准请查看官方标准,大客户都有优惠;
如您在对接中有任何其他问题需要技术咨询,可以加入我们的技术交流QQ群:701150764,或者直接联系我们商务,提供1对1技术支持;
概述:
maple-rtc 为蓝蘑云推出的直播&实时音视频系统,包括了直播,实时音频,视频,变声,美颜等功能,适用于娱乐,游戏,教育等实时场景中;Maple-RTC支持快速私有化部署,一键部署上线。
第一步:开通蓝蘑云服务
- 打开蓝蘑云用户管理后台,点击注册新用户
- 登录蓝蘑云用户管理后台,用刚注册的手机号码和密码登录管理后台
第二步:服务端创建应用AppID
- 点击创建新项目按钮,在弹出的对话框输入项目名称,点击立即创建;
- 获取APPID替换到项目中;
- 点击统计页面查看服务使用量;
收费标准
当前蓝蘑云提供1个月免费测试对接时间,让客户有充足时间对接测试,如果测试对接满意,需要联系商务开通正式服务商用,点击管理后台联系我们,可以联系到技术和商务;具体收费标准请查看官方标准,大客户都有优惠;
如您在对接中有任何其他问题需要技术咨询,可以加入我们的技术交流QQ群:701150764,或者直接联系我们商务,提供1对1技术支持;

【屏幕适配问题】强烈反对uni-app的“屏幕适配” 实现方案
目前的 “屏幕适配” 实现方案非常糟糕 (https://uniapp.dcloud.net.cn/adapt),从我这边看,有种产品经理脑子被驴踢了的感觉。
这个功能连官方自己的案例显示都不正常,请看下图(或自己访问:https://static-7d133019-9a7e-474a-b7c2-c01751f00ca5.bspapp.com/#/ )
既然我 app 是为移动端设计的,那么每个页面也肯定是为移动端设计的,在移动端能正常显示,就是最核心目标!
而目前搞 right window 这一套非常奇怪,只是首页能正常显示了,详细页无法正常显示。
而且,
不是所有app都是资讯类型!并不是所有app都是资讯类型!并不是所有app都是资讯类型!
如果是其它类型,大概率会造成交互上的混乱
其实大家的需求很简单,就是网页版直接默认一个宽度,居中, 就ok了。请不要搞些累赘的right window折腾开发者了
另外:用 iframe 是不ok的,因为我需要pc端可以单独访问某个页面
希望这个功能可以悬崖勒马,不要自己YY一套莫名其妙的方案,尽快改回正常的模式
目前的 “屏幕适配” 实现方案非常糟糕 (https://uniapp.dcloud.net.cn/adapt),从我这边看,有种产品经理脑子被驴踢了的感觉。
这个功能连官方自己的案例显示都不正常,请看下图(或自己访问:https://static-7d133019-9a7e-474a-b7c2-c01751f00ca5.bspapp.com/#/ )
既然我 app 是为移动端设计的,那么每个页面也肯定是为移动端设计的,在移动端能正常显示,就是最核心目标!
而目前搞 right window 这一套非常奇怪,只是首页能正常显示了,详细页无法正常显示。
而且,
不是所有app都是资讯类型!并不是所有app都是资讯类型!并不是所有app都是资讯类型!
如果是其它类型,大概率会造成交互上的混乱
其实大家的需求很简单,就是网页版直接默认一个宽度,居中, 就ok了。请不要搞些累赘的right window折腾开发者了
另外:用 iframe 是不ok的,因为我需要pc端可以单独访问某个页面
希望这个功能可以悬崖勒马,不要自己YY一套莫名其妙的方案,尽快改回正常的模式
收起阅读 »
nvue map 组件 polyline 更换箭头图标格式说明
nvue 页面 map 组件是基于高德地图实现的,如果您想自定义 polyline 的 箭头图标(对应 arrowIconPath )请参考附件中提供的示例图片设计,该图片为高德官方示例图片,请按照此图片的尺寸切图。
注意事项:
- 在image两边增加部分透明像素,可减轻绘制产生的锯齿;
- 图片中的箭头方向向上;
效果图:
<img src="https://img.cdn.aliyun.dcloud.net.cn/nativedocs/nativeplugin/Iosimgs/IMG_7C59BC6C6C7F-1.jpeg" width="50%"/>
附件:
nvue 页面 map 组件是基于高德地图实现的,如果您想自定义 polyline 的 箭头图标(对应 arrowIconPath )请参考附件中提供的示例图片设计,该图片为高德官方示例图片,请按照此图片的尺寸切图。
注意事项:
- 在image两边增加部分透明像素,可减轻绘制产生的锯齿;
- 图片中的箭头方向向上;
效果图:
<img src="https://img.cdn.aliyun.dcloud.net.cn/nativedocs/nativeplugin/Iosimgs/IMG_7C59BC6C6C7F-1.jpeg" width="50%"/>
附件:
收起阅读 »