HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

uniapp项目集成Bugtags

离线打包

需求描述
一个Android APP开发项目,采用了uniapp的方案,开发完成后需要让用户展开测试,为了降低测试中无效的沟通、提高测试效率,需要在测试APP中集成Bugtags管理系统,以方便对bug进行提交、管理。

集成方法

  1. 搭建Android离线打包环境,主要参考如下3个教程:
    a. Android平台,uni-app离线打包集成要领及注意事项
    b. Android离线打包(支持广告)
    c. Uni-app 实现离线打包 安卓篇
  2. 集成bugtags sdk:
    a. 新建一个activity继承自PandoraEntry,然后重写官方提供的方法,不要删除重写方法中的super方法;
    b. 新建一个application继承自DCloudApplication,重新官方提供的方法,也不要删除重写方法中的super调用;
    c. 修改androidmanifest.xml中的application和activity节点,将PandoraEntry和DCloudApplication替换成你重写的类,注意联同前面的包名一起换;
    d. 在application节点中添加tools:replace="android:name";

感谢
感谢DCloud工程师在过程中提供的帮助。

参考截图

继续阅读 »

需求描述
一个Android APP开发项目,采用了uniapp的方案,开发完成后需要让用户展开测试,为了降低测试中无效的沟通、提高测试效率,需要在测试APP中集成Bugtags管理系统,以方便对bug进行提交、管理。

集成方法

  1. 搭建Android离线打包环境,主要参考如下3个教程:
    a. Android平台,uni-app离线打包集成要领及注意事项
    b. Android离线打包(支持广告)
    c. Uni-app 实现离线打包 安卓篇
  2. 集成bugtags sdk:
    a. 新建一个activity继承自PandoraEntry,然后重写官方提供的方法,不要删除重写方法中的super方法;
    b. 新建一个application继承自DCloudApplication,重新官方提供的方法,也不要删除重写方法中的super调用;
    c. 修改androidmanifest.xml中的application和activity节点,将PandoraEntry和DCloudApplication替换成你重写的类,注意联同前面的包名一起换;
    d. 在application节点中添加tools:replace="android:name";

感谢
感谢DCloud工程师在过程中提供的帮助。

参考截图

收起阅读 »

uni-app 1.2发布,iOS、Android、小程序、H5主流四端全覆盖

uni_app

多端泛滥、精力有限,是很多前端开发者每日的梦魇。

uni-app 遵循 Vue.js 语法规范,一套代码,多端发行,切实解决了众多开发者的痛点;

故自8月份发布以来,已有上万名开发人员拥抱 uni-app ,目前已累计创建了数万个应用,活跃的开发者们每天在QQ群中产生数万条交流记录。

奔跑的脚步不会停止,历时一个多月的打磨,uni-app 1.2版本正式发布,支持发行到H5平台。

至此,uni-app 实现了iOS、Android、小程序、H5主流四端全覆盖!

另外,uni-app 自1.2版本开始,正式开源(传送门),欢迎大家 star 鼓励。

扫码体验

实例说话,依次扫描如下4个二维码,对比体验一下:

注:Appstore不能提交简单demo,所以iOS版补充了一些其他功能。

快速上手

uni-app 支持通过 HBuilderX可视化界面、vue-cli命令行两种方式快速创建项目,两种模式运行到H5平台后,都支持热重载。

通过 HBuilderX 可视化界面

可视化的方式比较简单,HBuilderX内置处理了相关环境依赖,适合懒人操作。

1.下载HBuilderX(地址),并安装、启动(HBuilderX直接升级到最新的v1.2.0+版本即可)
2.新建项目,选择 uni-app 类型,并选择 Hello uni-app 模板

3.点击顶部菜单,运行到chrome浏览器

4.之后HBuilderX开始编译,并将信息输出到控制台

5.编译完成后,HBuilderX会自动打开chrome浏览器并加载H5页面

tips:

  • 若chrome已提前打开,则需开发者手动将chrome切换为手机调试模式
  • 若chrome未打开,HBuilderX会尝试自动将chrome切换为调试模式,但这个切换存在延时,若页面显示不正常,需手动刷新

通过vue-cli命令行

习惯 cli 脚手架的同学,可以通过 vue-cli 创建 uni-app 项目。

1.全局安装vue-cli

npm install -g @vue/cli

2.创建uni-app项目

vue create -p dcloudio/uni-preset-vue my-project

此时,会提示选择项目模板,初次体验建议选择 hello uni-app 项目模板,如下所示:

3.进入目录并运行

cd my-project  
npm run serve

运行成功后,控制台会输出H5网站访问地址,如下:

4.启动chromel浏览器并切换为手机调试模式,访问如上地址即可体验。

tips:

  • 目前 cli 脚手架仅支持编译为H5网站,下版本将支持编译到微信小程序平台;
  • 现阶段若需运行到微信小程序或App,则需将项目根目录下的 src 文件夹,拖拽到HBuilderX中,点击“运行”菜单执行

H5端配置

uni-app 在发行到H5端时,采用的是SPA模式,支持下列配置:

  • 自定义页面模板,支持简单的SEO配置及百度统计
  • 支持 hash/history 两种路由跳转模式
  • 支持自定义页面js加载组件

本次发版的其它更新

uni-app 1.2版本,还包括如下更新:

  • 新增 条件编译 #ifndef 代表非此平台的条件编译(如<!-- #ifndef H5 -->代表非H5平台,也就是uni-app目前支持的App及小程序平台)
  • 新增 API tabBar支持设置红点和角标
  • 新增 API 监听网络状态变化
  • 新增 button 组件的 open-type 属性支持 feedback 值域
  • 新增 manifest.json 配置 navigateToMiniProgramAppIdList 节点,可配置需需跳转的小程序列表
  • 新增 nvue 支持第三方weex ui库
  • 新增 nvue 支持 bindingx
  • 新增 nvue 支持顶部原生导航的 onNavigationBarButtonTap 事件
  • 修复 uni.request method 为 PUT、DELETE 时,参数信息丢失的问题
  • 修复 picker 组件 cancel 事件不触发的问题
  • 修复 复杂场景下组件数据渲染异常的问题
  • 修复 uni.canvasToTempFilePath 方法设置参数destWidth、destHeight不生效的问题
  • 修复 nvue 初始化时得不到 storage 的问题
  • 修复 nvue Android平台 不支持 Websocket 功能的问题
  • 修复 nvue Android平台 页面未设置 titleNView 时可能显示不正常的问题
  • 修复 nvue iOS平台 弹出软键盘后收回区域可能不对的问题
  • 修复 nvue iOS平台使用 uni.request 不能设置data的问题
  • 优化 web-view 组件 增加网页加载进度条
  • 优化 web-view 组件 标题与页面 title 同步
  • 优化 input 组件 type="number" 在 App 端支持输入小数点

未来计划

uni-app 会继续保持高速迭代,在继续完善已覆盖的四端情况下,补充百度、支付宝小程序的兼容。

更多需求计划,参考uni-app需求墙

继续阅读 »

多端泛滥、精力有限,是很多前端开发者每日的梦魇。

uni-app 遵循 Vue.js 语法规范,一套代码,多端发行,切实解决了众多开发者的痛点;

故自8月份发布以来,已有上万名开发人员拥抱 uni-app ,目前已累计创建了数万个应用,活跃的开发者们每天在QQ群中产生数万条交流记录。

奔跑的脚步不会停止,历时一个多月的打磨,uni-app 1.2版本正式发布,支持发行到H5平台。

至此,uni-app 实现了iOS、Android、小程序、H5主流四端全覆盖!

另外,uni-app 自1.2版本开始,正式开源(传送门),欢迎大家 star 鼓励。

扫码体验

实例说话,依次扫描如下4个二维码,对比体验一下:

注:Appstore不能提交简单demo,所以iOS版补充了一些其他功能。

快速上手

uni-app 支持通过 HBuilderX可视化界面、vue-cli命令行两种方式快速创建项目,两种模式运行到H5平台后,都支持热重载。

通过 HBuilderX 可视化界面

可视化的方式比较简单,HBuilderX内置处理了相关环境依赖,适合懒人操作。

1.下载HBuilderX(地址),并安装、启动(HBuilderX直接升级到最新的v1.2.0+版本即可)
2.新建项目,选择 uni-app 类型,并选择 Hello uni-app 模板

3.点击顶部菜单,运行到chrome浏览器

4.之后HBuilderX开始编译,并将信息输出到控制台

5.编译完成后,HBuilderX会自动打开chrome浏览器并加载H5页面

tips:

  • 若chrome已提前打开,则需开发者手动将chrome切换为手机调试模式
  • 若chrome未打开,HBuilderX会尝试自动将chrome切换为调试模式,但这个切换存在延时,若页面显示不正常,需手动刷新

通过vue-cli命令行

习惯 cli 脚手架的同学,可以通过 vue-cli 创建 uni-app 项目。

1.全局安装vue-cli

npm install -g @vue/cli

2.创建uni-app项目

vue create -p dcloudio/uni-preset-vue my-project

此时,会提示选择项目模板,初次体验建议选择 hello uni-app 项目模板,如下所示:

3.进入目录并运行

cd my-project  
npm run serve

运行成功后,控制台会输出H5网站访问地址,如下:

4.启动chromel浏览器并切换为手机调试模式,访问如上地址即可体验。

tips:

  • 目前 cli 脚手架仅支持编译为H5网站,下版本将支持编译到微信小程序平台;
  • 现阶段若需运行到微信小程序或App,则需将项目根目录下的 src 文件夹,拖拽到HBuilderX中,点击“运行”菜单执行

H5端配置

uni-app 在发行到H5端时,采用的是SPA模式,支持下列配置:

  • 自定义页面模板,支持简单的SEO配置及百度统计
  • 支持 hash/history 两种路由跳转模式
  • 支持自定义页面js加载组件

本次发版的其它更新

uni-app 1.2版本,还包括如下更新:

  • 新增 条件编译 #ifndef 代表非此平台的条件编译(如<!-- #ifndef H5 -->代表非H5平台,也就是uni-app目前支持的App及小程序平台)
  • 新增 API tabBar支持设置红点和角标
  • 新增 API 监听网络状态变化
  • 新增 button 组件的 open-type 属性支持 feedback 值域
  • 新增 manifest.json 配置 navigateToMiniProgramAppIdList 节点,可配置需需跳转的小程序列表
  • 新增 nvue 支持第三方weex ui库
  • 新增 nvue 支持 bindingx
  • 新增 nvue 支持顶部原生导航的 onNavigationBarButtonTap 事件
  • 修复 uni.request method 为 PUT、DELETE 时,参数信息丢失的问题
  • 修复 picker 组件 cancel 事件不触发的问题
  • 修复 复杂场景下组件数据渲染异常的问题
  • 修复 uni.canvasToTempFilePath 方法设置参数destWidth、destHeight不生效的问题
  • 修复 nvue 初始化时得不到 storage 的问题
  • 修复 nvue Android平台 不支持 Websocket 功能的问题
  • 修复 nvue Android平台 页面未设置 titleNView 时可能显示不正常的问题
  • 修复 nvue iOS平台 弹出软键盘后收回区域可能不对的问题
  • 修复 nvue iOS平台使用 uni.request 不能设置data的问题
  • 优化 web-view 组件 增加网页加载进度条
  • 优化 web-view 组件 标题与页面 title 同步
  • 优化 input 组件 type="number" 在 App 端支持输入小数点

未来计划

uni-app 会继续保持高速迭代,在继续完善已覆盖的四端情况下,补充百度、支付宝小程序的兼容。

更多需求计划,参考uni-app需求墙

收起阅读 »

关于uni-app视图渲染和微信小程序渲染方式

微信小程序:通过setData设置到视图层
uni-app:

  1. 先设置初始值
  2. 请求到的数据进行:this.xxx = res.data

微信小程序:通过setData设置到视图层
uni-app:

  1. 先设置初始值
  2. 请求到的数据进行:this.xxx = res.data

关于前端跨域(CORS)前期调试请求GET解决方案

跨域请求

详情见:https://www.cnblogs.com/cisum/p/9988171.html

详情见:https://www.cnblogs.com/cisum/p/9988171.html

分享适用于uniapp的二维码生成库

uniapp

源码:qrcode generator for uniapp

使用方法

  let qrcode = new Qrcode();  
  qrcode.draw('myCanvas', 'https://u.wechat.com/EJab_1QbJTgyO7tcgynIyBE');
继续阅读 »

源码:qrcode generator for uniapp

使用方法

  let qrcode = new Qrcode();  
  qrcode.draw('myCanvas', 'https://u.wechat.com/EJab_1QbJTgyO7tcgynIyBE');
收起阅读 »

低功耗蓝牙-安卓版插件

已经使用过一段时间Dcloud公司提供的这套跨平台框架,总体上还是比较喜欢的。  
在这里也是感谢Dcloud公司的奉献。今天也是准备尽一点绵薄之力,贡献出这段时间自己开发的一个蓝牙通信的安卓版插件。写的不好请勿喷,欢迎交流。刚好今天是我的生日,Happy Birthday to myself !哈哈  

进入正题,低功耗蓝牙的通信大致分为三个过程。搜索--》连接--》进行通信。因为也是刚接触蓝牙这个方面,如有理解片面或者不对的地方,还请指正。此处以我方设备的连接过程为例进行讲解。在搜索到蓝牙设备后,需要进行连接(mBluetoothDevice.connectGatt),连接成功后,需要进行一个口令认证,认证成功后,方可继续进行和设备的交互。在连接上蓝牙设备后一定时间内未认证通过,蓝牙设备将自动断开。  

上代码:
JavaScript部分:
我是结合了vue的一些写法,方法体写在了vue的methods中,主要有onStartSearch、onBluetoothConnect、onBluetoothAuth等。
与原始交互方面主要用到了
plus.pluginBLE.PluginInitBle,
plus.pluginBLE.PluginStartSearchBle,
plus.pluginBLE.PluginStopSearchBle,
plus.pluginBLE.PluginConnectBle,
plus.pluginBLE.PluginBleAuth等方法。
这些的方法可见demo工程中PluginBLE.js以及对应BLEPlugin.java文件。

methods: {  
            onStopSearch: function () {  
                var that = this;  
                console.log('onstop');  
                plus.pluginBLE.PluginStopSearchBle(function (aData) {  
                  //停止搜索,命令调用成功后,执行以下逻辑  
                });  
            },  
            onStartSearch: function () {  
                var that = this;  
                console.log('startDiscovery');  
                plus.pluginBLE.PluginInitBle(function (aData) {  
                //初始化一些变量,初始化成功后执行以下逻辑  
                    if (aData.Result == 200) {  
                        that.searching = true;  
                        mui.toast('蓝牙搜索初始化成功,开始搜索');  
                        plus.pluginBLE.PluginStartSearchBle(function (bData) {  
                           //搜索到的设备在这里  
                        }, function (eData) {  
                                mui.toast(eData.Description);  
                        });  
                    }  
                }, function (eData) {  
                        mui.toast(eData.Description);  
                });  
            },  
            onBluetoothConnect: function (item) {  
                var that = this;  
                that.onStopSearch();  
                plus.nativeUI.showWaiting("蓝牙连接中...");  
                plus.pluginBLE.PluginConnectBle(item.bleAddress, function (aData) {  
                    //连接成功  
                    plus.nativeUI.closeWaiting();  
                        that.onBluetoothAuth();  
                }, function (eData) {  
                    //连接失败  
                    plus.nativeUI.closeWaiting();  
                    mui.toast(eData.Description);  

                });  
            },  
            onBluetoothReconnect: function () {  
                this.onBluetoothConnect(this.bluetoothDevice);  
            },  
            onBluetoothAuth: function () {  
                var that = this;  
                plus.nativeUI.showWaiting("连接成功,身份信息验证中...");  
                plus.pluginBLE.PluginBleAuth(function (aData) {  
                    plus.nativeUI.closeWaiting();  
                    mui.toast('认证成功,开始交互');  

                },function (eData) {  
                    plus.nativeUI.closeWaiting();  
                    mui.toast("认证失败,请重试");  
                });  
            },  

            onDisconnectBluetoothTap:function(){  
                var that=this;  
                plus.pluginBLE.PluginDisconnectBle(function (aData) {  

                    // mui.toast('设备已断开');  
                });  
            },  
            onCompleteTap: function () {  
                var that=this;  

            },  
            onRetryTap: function () {  
                that.retryFlag = false;  

            },

以上是Html5展示界面的逻辑。看的可能会比较生硬晦涩。来几张图看看效果。

再来一张硬件照,露个脸O(∩_∩)O哈哈~

java插件层,和jsbridge层直接交互的代码在BLEPlugin.java 中,方法名称也是一一对应起来的。便于大家查看。
低功耗蓝牙交互的过程,需要使用到每个特征值的UUID,这个在开发过程中可以找硬件工程师提供。或者通过一款叫做nRF Connect 的软件进行查看。java层的代码也是在github上找到的,站在巨人的肩膀上^^,懂安卓原生开发的朋友,可以直接借鉴这部分的代码。地址奉上:https://github.com/0xsunsama/Android_ble

没怎么写个,感觉写得好烂。不过话又说回来。烂葱不烂味,哈哈,希望能对有需要的朋友有所帮助。
最后,毕竟项目涉及到一些公司机密,所以对项目有删减。这个就存粹的作为一个demo了。

继续阅读 »
已经使用过一段时间Dcloud公司提供的这套跨平台框架,总体上还是比较喜欢的。  
在这里也是感谢Dcloud公司的奉献。今天也是准备尽一点绵薄之力,贡献出这段时间自己开发的一个蓝牙通信的安卓版插件。写的不好请勿喷,欢迎交流。刚好今天是我的生日,Happy Birthday to myself !哈哈  

进入正题,低功耗蓝牙的通信大致分为三个过程。搜索--》连接--》进行通信。因为也是刚接触蓝牙这个方面,如有理解片面或者不对的地方,还请指正。此处以我方设备的连接过程为例进行讲解。在搜索到蓝牙设备后,需要进行连接(mBluetoothDevice.connectGatt),连接成功后,需要进行一个口令认证,认证成功后,方可继续进行和设备的交互。在连接上蓝牙设备后一定时间内未认证通过,蓝牙设备将自动断开。  

上代码:
JavaScript部分:
我是结合了vue的一些写法,方法体写在了vue的methods中,主要有onStartSearch、onBluetoothConnect、onBluetoothAuth等。
与原始交互方面主要用到了
plus.pluginBLE.PluginInitBle,
plus.pluginBLE.PluginStartSearchBle,
plus.pluginBLE.PluginStopSearchBle,
plus.pluginBLE.PluginConnectBle,
plus.pluginBLE.PluginBleAuth等方法。
这些的方法可见demo工程中PluginBLE.js以及对应BLEPlugin.java文件。

methods: {  
            onStopSearch: function () {  
                var that = this;  
                console.log('onstop');  
                plus.pluginBLE.PluginStopSearchBle(function (aData) {  
                  //停止搜索,命令调用成功后,执行以下逻辑  
                });  
            },  
            onStartSearch: function () {  
                var that = this;  
                console.log('startDiscovery');  
                plus.pluginBLE.PluginInitBle(function (aData) {  
                //初始化一些变量,初始化成功后执行以下逻辑  
                    if (aData.Result == 200) {  
                        that.searching = true;  
                        mui.toast('蓝牙搜索初始化成功,开始搜索');  
                        plus.pluginBLE.PluginStartSearchBle(function (bData) {  
                           //搜索到的设备在这里  
                        }, function (eData) {  
                                mui.toast(eData.Description);  
                        });  
                    }  
                }, function (eData) {  
                        mui.toast(eData.Description);  
                });  
            },  
            onBluetoothConnect: function (item) {  
                var that = this;  
                that.onStopSearch();  
                plus.nativeUI.showWaiting("蓝牙连接中...");  
                plus.pluginBLE.PluginConnectBle(item.bleAddress, function (aData) {  
                    //连接成功  
                    plus.nativeUI.closeWaiting();  
                        that.onBluetoothAuth();  
                }, function (eData) {  
                    //连接失败  
                    plus.nativeUI.closeWaiting();  
                    mui.toast(eData.Description);  

                });  
            },  
            onBluetoothReconnect: function () {  
                this.onBluetoothConnect(this.bluetoothDevice);  
            },  
            onBluetoothAuth: function () {  
                var that = this;  
                plus.nativeUI.showWaiting("连接成功,身份信息验证中...");  
                plus.pluginBLE.PluginBleAuth(function (aData) {  
                    plus.nativeUI.closeWaiting();  
                    mui.toast('认证成功,开始交互');  

                },function (eData) {  
                    plus.nativeUI.closeWaiting();  
                    mui.toast("认证失败,请重试");  
                });  
            },  

            onDisconnectBluetoothTap:function(){  
                var that=this;  
                plus.pluginBLE.PluginDisconnectBle(function (aData) {  

                    // mui.toast('设备已断开');  
                });  
            },  
            onCompleteTap: function () {  
                var that=this;  

            },  
            onRetryTap: function () {  
                that.retryFlag = false;  

            },

以上是Html5展示界面的逻辑。看的可能会比较生硬晦涩。来几张图看看效果。

再来一张硬件照,露个脸O(∩_∩)O哈哈~

java插件层,和jsbridge层直接交互的代码在BLEPlugin.java 中,方法名称也是一一对应起来的。便于大家查看。
低功耗蓝牙交互的过程,需要使用到每个特征值的UUID,这个在开发过程中可以找硬件工程师提供。或者通过一款叫做nRF Connect 的软件进行查看。java层的代码也是在github上找到的,站在巨人的肩膀上^^,懂安卓原生开发的朋友,可以直接借鉴这部分的代码。地址奉上:https://github.com/0xsunsama/Android_ble

没怎么写个,感觉写得好烂。不过话又说回来。烂葱不烂味,哈哈,希望能对有需要的朋友有所帮助。
最后,毕竟项目涉及到一些公司机密,所以对项目有删减。这个就存粹的作为一个demo了。

收起阅读 »

版本更新后编译失败【已解决,需要删除unpackage目录的编译缓存】

更新

更新前运行还好好的,更新完就成这样了,求解决方法啊??

更新前运行还好好的,更新完就成这样了,求解决方法啊??

关于uni-app原生tabbar的字体问题

tabbar uniapp

为什么app端的原生tabbar字体大小比小程序和H5端都要大两号呢?已经提过很多次这个字号大小的问题了,官方就是视而不见,是APP端改不了还是就是故意弄这么大字体呢?一个端一个样,觉得这样子无所谓么?真是无语了。

继续阅读 »

为什么app端的原生tabbar字体大小比小程序和H5端都要大两号呢?已经提过很多次这个字号大小的问题了,官方就是视而不见,是APP端改不了还是就是故意弄这么大字体呢?一个端一个样,觉得这样子无所谓么?真是无语了。

收起阅读 »

HBuilderX1.2.0的app中manifest的延迟关闭splash设置时间报错的临时方法

HBuilderX升级

此文已过期,请遇到问题的用户升级HBuilderX 1.2.1解决。

============以下为过期内容===============
需要在manifest源码视图里,将splashscreen节点下的delay,后面设为"1000"(或你需要的数字),注意需要加引号,然后保存。

后续会提供升级补丁。
后续升级后需要恢复为正常数字。

抱歉给大家带来麻烦。

继续阅读 »

此文已过期,请遇到问题的用户升级HBuilderX 1.2.1解决。

============以下为过期内容===============
需要在manifest源码视图里,将splashscreen节点下的delay,后面设为"1000"(或你需要的数字),注意需要加引号,然后保存。

后续会提供升级补丁。
后续升级后需要恢复为正常数字。

抱歉给大家带来麻烦。

收起阅读 »

HBuilderX升级时无限重启的临时解决方法

HBuilderX升级

原因是升级包下载后无法覆盖到HBuilderX所在的目录,一般是权限问题或目录文件占用问题。

  1. 需要以管理员身份启动HBuilderX。
  2. 需要关掉HBuilderX,在任务管理器里杀掉node.js、adb相关进程。或者重启电脑。杀掉这些进程后启动HBuilderX不要运行应用,直接升级。

后续版本会解决这个问题。

继续阅读 »

原因是升级包下载后无法覆盖到HBuilderX所在的目录,一般是权限问题或目录文件占用问题。

  1. 需要以管理员身份启动HBuilderX。
  2. 需要关掉HBuilderX,在任务管理器里杀掉node.js、adb相关进程。或者重启电脑。杀掉这些进程后启动HBuilderX不要运行应用,直接升级。

后续版本会解决这个问题。

收起阅读 »

【解决方案】关于iPhone XR/XS/XS Max无法手机真机运行的临时解决方法

真机运行 iPhone XS iphonex HBuilderX

部分同学在iPhone XS/iPhone XS Max等手机上真机运行不了的问题,解决方法如下:

最新版hx已解决,请升级。
HBuilder不支持,请升级到hx。

需注意保持itunes为最新

另此问题只影响真机运行,不影响打包的app在这些手机上安装和运行。

继续阅读 »

部分同学在iPhone XS/iPhone XS Max等手机上真机运行不了的问题,解决方法如下:

最新版hx已解决,请升级。
HBuilder不支持,请升级到hx。

需注意保持itunes为最新

另此问题只影响真机运行,不影响打包的app在这些手机上安装和运行。

收起阅读 »

关于HBuilderX运行或其它操作,要求管理员权限的问题

权限 HBuilderX权限

办法1:不要把HBuilderX安装包放置在C盘程序目录下

方法2:

  1. 激活windows administrator用户,使用administrator用户
  2. “我的电脑”,右键菜单,点击“管理”,即可进入“计算机管理”窗口

继续阅读 »

办法1:不要把HBuilderX安装包放置在C盘程序目录下

方法2:

  1. 激活windows administrator用户,使用administrator用户
  2. “我的电脑”,右键菜单,点击“管理”,即可进入“计算机管理”窗口

收起阅读 »