HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

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 强大的学习网站,更是强大的编辑器

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 强大的学习网站,更是强大的编辑器

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 样式变形的处理办法

uni_app

使用 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 等参数 详情
收起阅读 »

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  
    });  
}
收起阅读 »

原来火绒是内鬼

今天把万年不更新的Hbuilder更到了Hbuilder X,原来现在图标都绿了,更完后内置语法插件下载不下来,设置里装插件也装不了,提示网络没连接,最后把火绒关了再打开就可以了。

今天把万年不更新的Hbuilder更到了Hbuilder X,原来现在图标都绿了,更完后内置语法插件下载不下来,设置里装插件也装不了,提示网络没连接,最后把火绒关了再打开就可以了。

蓝蘑云直播实时音视频集成指南

原生插件 直播

准备:

  1. 通过官方途径申请蓝蘑云账号,参考使用指南;
  2. 离线SDK 或者插件市场获取;
  3. API参考文档;
  4. 参考DEMOgithub源码,或者插件市场获取;

DEMO运行示例

  1. 下载DEMO源码从插件市场下载,解压打开;
  2. 打开HBuild工具导入demo工程,从自己账号获取DCloud AppID;

  1. 获取蓝蘑云APPID,填入代码中 export const appId = ""

  1. 配置App原生插件;

  1. 配置HBuild android权限




android 6.0以上需要手动添加权限,我们sdk 提供接口获取权限接口

5.云打包


6.android demo 体验下载地址

注意事项

  1. 当前调试运行环境只支持真机调试运行,不能支持模拟器环境运行;
  2. 运行时确保app的摄像头和麦克风权限打开;如果加入房间失败,监听错误码为4007,代表无权限,需要在app权限设置里打开;
继续阅读 »

准备:

  1. 通过官方途径申请蓝蘑云账号,参考使用指南;
  2. 离线SDK 或者插件市场获取;
  3. API参考文档;
  4. 参考DEMOgithub源码,或者插件市场获取;

DEMO运行示例

  1. 下载DEMO源码从插件市场下载,解压打开;
  2. 打开HBuild工具导入demo工程,从自己账号获取DCloud AppID;

  1. 获取蓝蘑云APPID,填入代码中 export const appId = ""

  1. 配置App原生插件;

  1. 配置HBuild android权限




android 6.0以上需要手动添加权限,我们sdk 提供接口获取权限接口

5.云打包


6.android demo 体验下载地址

注意事项

  1. 当前调试运行环境只支持真机调试运行,不能支持模拟器环境运行;
  2. 运行时确保app的摄像头和麦克风权限打开;如果加入房间失败,监听错误码为4007,代表无权限,需要在app权限设置里打开;
收起阅读 »

蓝蘑云使用指南

概述:

maple-rtc 为蓝蘑云推出的直播&实时音视频系统,包括了直播,实时音频,视频,变声,美颜等功能,适用于娱乐,游戏,教育等实时场景中;Maple-RTC支持快速私有化部署,一键部署上线。

第一步:开通蓝蘑云服务

  1. 打开蓝蘑云用户管理后台,点击注册新用户


  1. 登录蓝蘑云用户管理后台,用刚注册的手机号码和密码登录管理后台

第二步:服务端创建应用AppID

  1. 点击创建新项目按钮,在弹出的对话框输入项目名称,点击立即创建;

  2. 获取APPID替换到项目中;
  3. 点击统计页面查看服务使用量;

收费标准

当前蓝蘑云提供1个月免费测试对接时间,让客户有充足时间对接测试,如果测试对接满意,需要联系商务开通正式服务商用,点击管理后台联系我们,可以联系到技术和商务;具体收费标准请查看官方标准,大客户都有优惠;
如您在对接中有任何其他问题需要技术咨询,可以加入我们的技术交流QQ群:701150764,或者直接联系我们商务,提供1对1技术支持;

继续阅读 »

概述:

maple-rtc 为蓝蘑云推出的直播&实时音视频系统,包括了直播,实时音频,视频,变声,美颜等功能,适用于娱乐,游戏,教育等实时场景中;Maple-RTC支持快速私有化部署,一键部署上线。

第一步:开通蓝蘑云服务

  1. 打开蓝蘑云用户管理后台,点击注册新用户


  1. 登录蓝蘑云用户管理后台,用刚注册的手机号码和密码登录管理后台

第二步:服务端创建应用AppID

  1. 点击创建新项目按钮,在弹出的对话框输入项目名称,点击立即创建;

  2. 获取APPID替换到项目中;
  3. 点击统计页面查看服务使用量;

收费标准

当前蓝蘑云提供1个月免费测试对接时间,让客户有充足时间对接测试,如果测试对接满意,需要联系商务开通正式服务商用,点击管理后台联系我们,可以联系到技术和商务;具体收费标准请查看官方标准,大客户都有优惠;
如您在对接中有任何其他问题需要技术咨询,可以加入我们的技术交流QQ群:701150764,或者直接联系我们商务,提供1对1技术支持;

收起阅读 »

解决uniApp转支付宝小程序button按钮无法触发授权成功回调

使用 支付宝 onGetAuthorize="onGetAuthorize" 和 @GetAuthorize="onGetAuthorize" 都不支持

解决办法 改用 @getAuthorize="onGetAuthorize" 如上图

继续阅读 »

使用 支付宝 onGetAuthorize="onGetAuthorize" 和 @GetAuthorize="onGetAuthorize" 都不支持

解决办法 改用 @getAuthorize="onGetAuthorize" 如上图

收起阅读 »

【屏幕适配问题】强烈反对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 更换箭头图标格式说明

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%"/>

附件:

收起阅读 »