HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

简单的MUI登录和重置密码页面模板

mui


一款简单的MUI框架的手机移动端登录和重置密码页面模板,首先进入手机登录界面模板,点击忘记密码转到重置密码页面。

下载地址:https://www.sucaihuo.com/templates/4428.html
至于下载需要积分,签到个到就够了

继续阅读 »


一款简单的MUI框架的手机移动端登录和重置密码页面模板,首先进入手机登录界面模板,点击忘记密码转到重置密码页面。

下载地址:https://www.sucaihuo.com/templates/4428.html
至于下载需要积分,签到个到就够了

收起阅读 »

这个代码提示 能改成颜色提示吗?看着很不舒服。

HBuilderX bug已确认

这个代码提示 能改成颜色提示吗?看着很不舒服,鸡皮疙瘩掉一地。

这个代码提示 能改成颜色提示吗?看着很不舒服,鸡皮疙瘩掉一地。

做一个APP软件要多少钱?

5+App开发

与传统APP开发模式相比,云计算模式开发APP,不仅可以大幅缩短开发周期,并可让开发自己成本节省9成左右。

创新云计算开发模式为什么可以更省时、省钱?

从渠道开发角度来说,首发打通了苹果APP+安卓APP+小程序+微官网+移动网站平台的连贯开发,意味着企业只需进行一次APP开发,即可拥有上述所有主流移动渠道平台,并可配置PC/移动端管理平台、配送端平台等全部产品。

从APP功能开发角度来说,基于“PaaS+SaaS”创新云计算模式的云平台,可以有效降低开发门槛,从而大幅提升APP开发效率,进而降低软件APP制作周期与开发成本。

从APP运营角度来讲,企业只需配备1-2人,只需会进行简单的电脑操作,即可进行平台运营维护,无需自建技术团队,运营成本也能得到大幅压缩。

从APP应用角度来看,可以快速搭建最新、最热、最有效的场景化移动电商APP平台,拥有全套的一站式APP制作解决方案!

继续阅读 »

与传统APP开发模式相比,云计算模式开发APP,不仅可以大幅缩短开发周期,并可让开发自己成本节省9成左右。

创新云计算开发模式为什么可以更省时、省钱?

从渠道开发角度来说,首发打通了苹果APP+安卓APP+小程序+微官网+移动网站平台的连贯开发,意味着企业只需进行一次APP开发,即可拥有上述所有主流移动渠道平台,并可配置PC/移动端管理平台、配送端平台等全部产品。

从APP功能开发角度来说,基于“PaaS+SaaS”创新云计算模式的云平台,可以有效降低开发门槛,从而大幅提升APP开发效率,进而降低软件APP制作周期与开发成本。

从APP运营角度来讲,企业只需配备1-2人,只需会进行简单的电脑操作,即可进行平台运营维护,无需自建技术团队,运营成本也能得到大幅压缩。

从APP应用角度来看,可以快速搭建最新、最热、最有效的场景化移动电商APP平台,拥有全套的一站式APP制作解决方案!

收起阅读 »

力谱云专家告诉你,靠谱的APP是如何制作的?

5+App开发

> 移动蓝海市场,商机无限,越来越多的企业开始寻求制作,并运营一款专属于自己的靠谱APP。那么,究竟开发一个APP要多少钱呢?

开门见山,目前通过传统开发模式,制作一个手机APP软件商城的价格普遍在30万元左右。并且,开发APP的成本会随着需求难易度,以及开发周期长短的影响进而走高,可以说是一个上不封顶的高成本投入项目。

传统开发模式下,开发一款普通电商APP究竟为何如此昂贵?

首先,目前制作一个靠谱的手机APP,普遍会需要开发iOS APP、安卓APP、微信小程序、微官网、移动网站等主流APP应用平台,进行大批流量导入。并且,平台方还需要需要PC端运营管理平台,以及便捷的移动端运营平台,进行日常订单、物流、产品等方面的跟进。此外,还会需要服务器方面的部署。这几大方面的开发逻辑各不相同,需要一一从零开始制作。

其次,传统开发模式下,人工成本繁杂,至少需要前后端各自配备一名工程师,一位UI设计师,一位测试员,以及产品经理进行项目统筹。并且,开发周期冗长,需要数月的制作时间,也存在项目开发失败的风险。

另外,除了满足单一的APP功能之外,靠谱的商家,一般会提供许多细分功能,而这些功能都需要庞大的业务系统进行支撑。比如,在开发一个电商APP时,除了商品交易等基础电商功能之外,还会涉及到用户登录注册、购物车、会员管理、订单管理等功能,每个单一功能都需要无数细小功能进行支撑,才能完善业务逻辑。在传统开发模式中,这些细微的功能,都会需要从零起步,一步步进行研磨。

继续阅读 »

> 移动蓝海市场,商机无限,越来越多的企业开始寻求制作,并运营一款专属于自己的靠谱APP。那么,究竟开发一个APP要多少钱呢?

开门见山,目前通过传统开发模式,制作一个手机APP软件商城的价格普遍在30万元左右。并且,开发APP的成本会随着需求难易度,以及开发周期长短的影响进而走高,可以说是一个上不封顶的高成本投入项目。

传统开发模式下,开发一款普通电商APP究竟为何如此昂贵?

首先,目前制作一个靠谱的手机APP,普遍会需要开发iOS APP、安卓APP、微信小程序、微官网、移动网站等主流APP应用平台,进行大批流量导入。并且,平台方还需要需要PC端运营管理平台,以及便捷的移动端运营平台,进行日常订单、物流、产品等方面的跟进。此外,还会需要服务器方面的部署。这几大方面的开发逻辑各不相同,需要一一从零开始制作。

其次,传统开发模式下,人工成本繁杂,至少需要前后端各自配备一名工程师,一位UI设计师,一位测试员,以及产品经理进行项目统筹。并且,开发周期冗长,需要数月的制作时间,也存在项目开发失败的风险。

另外,除了满足单一的APP功能之外,靠谱的商家,一般会提供许多细分功能,而这些功能都需要庞大的业务系统进行支撑。比如,在开发一个电商APP时,除了商品交易等基础电商功能之外,还会涉及到用户登录注册、购物车、会员管理、订单管理等功能,每个单一功能都需要无数细小功能进行支撑,才能完善业务逻辑。在传统开发模式中,这些细微的功能,都会需要从零起步,一步步进行研磨。

收起阅读 »

iOS离线打包 - 语音识别(Speech)插件配置

iOS离线打包 语音识别 Speech 百度语音识别 讯飞语音识别

百度语音配置

将百度语音模块依赖库及资源添加到工程

依赖库 系统库 依赖资源
liblibSpeech.a、libBaiduSpeechSDK.a、libbaiduSpeech.a libc++.tbd、libz.tbd、libsqlite3.tbd、AudioToolbox.framework、AVFoundation.framework、CFNetwork.framework、CoreLocation.framework、CoreTelephony.framework、SystemConfiguration.framework、GLKit.framework BDSClientEASRResources文件夹里的资源文件

帐号配置

1.首先到百度语音官方网站 创建应用获取 appkey 等信息。

2.打开info.plist,找到baiduspeech项,填入自己帐号的信息,如果没有该项,按照下图中的格式创建

3、把BDSClientEASRResources文件夹里的资源文件引入到工程里

讯飞语音配置

添加讯飞语音插件

注: Linker Flags、framework添加方法参考该文档

依赖库 系统库 依赖资源
liblibSpeech.a、libiflySpeech.a、iflyMSC.framework AVFoundation.framework、AddressBook.framework、Contacts.framework

注意:iflyMSC.framework 库需要开发者在讯飞语音官方网站自行生成,因为需要跟您的AppId绑定,SDK内的库无法在您的App中使用;

帐号配置

首先到讯飞语音官方网站创建App,获取 appid 信息。

2.打开info.plist,找到iFly项,填入自己帐号的信息,如果没有该项,按照下图中的格式创建

注意:离线打包语言识别功能只能选一个,要么科大讯飞,要么百度语音,剩下那个需要在工程里删除

继续阅读 »

百度语音配置

将百度语音模块依赖库及资源添加到工程

依赖库 系统库 依赖资源
liblibSpeech.a、libBaiduSpeechSDK.a、libbaiduSpeech.a libc++.tbd、libz.tbd、libsqlite3.tbd、AudioToolbox.framework、AVFoundation.framework、CFNetwork.framework、CoreLocation.framework、CoreTelephony.framework、SystemConfiguration.framework、GLKit.framework BDSClientEASRResources文件夹里的资源文件

帐号配置

1.首先到百度语音官方网站 创建应用获取 appkey 等信息。

2.打开info.plist,找到baiduspeech项,填入自己帐号的信息,如果没有该项,按照下图中的格式创建

3、把BDSClientEASRResources文件夹里的资源文件引入到工程里

讯飞语音配置

添加讯飞语音插件

注: Linker Flags、framework添加方法参考该文档

依赖库 系统库 依赖资源
liblibSpeech.a、libiflySpeech.a、iflyMSC.framework AVFoundation.framework、AddressBook.framework、Contacts.framework

注意:iflyMSC.framework 库需要开发者在讯飞语音官方网站自行生成,因为需要跟您的AppId绑定,SDK内的库无法在您的App中使用;

帐号配置

首先到讯飞语音官方网站创建App,获取 appid 信息。

2.打开info.plist,找到iFly项,填入自己帐号的信息,如果没有该项,按照下图中的格式创建

注意:离线打包语言识别功能只能选一个,要么科大讯飞,要么百度语音,剩下那个需要在工程里删除

收起阅读 »

HBuilderX入门教程

教程 入门教程 HBuilderX HBuilderX入门教程

本帖文章已集成到: hx产品文档

HX是轻量编辑器和强大IDE的完美结合体。敏捷的性能,清爽的界面,强大的功能和于一身。

本文档面向入门用户,建议初学者仔细研读。

1. 介绍

  1. 执着于更快一步的理念,hx的左侧项目管理器是单击响应而不是双击。
  2. 单击展开目录,单击预览文件,双击打开文件。
  3. 预览文件时顶部标签卡是斜体的,此时继续预览其他文件会替换预览标签卡。双击文件后标签卡为正体,不会被替换。预览的文件一旦开始编辑,也会自动变为正式打开状态。
    预览文件
  4. 项目管理器默认是不显示图标的,可以将鼠标移到项目管理器区域,右上角会悬浮菜单,在里面可以选择显示图标。HBuilderX支持业内多种图标插件,可以在工具-插件安装中找到更多图标插件。
  5. hx的文件保存是免丢失的,并且有热退出功能。所谓热退出,就是关闭hx时不要保存文件。再次打开时仍然是之前的状态。未保存的文件也会继续原样展现。
  6. hx默认带有每30秒保存一次临时文件的策略(可以在设置里调节时间间隔)
  7. 不管是关闭hx,还是断电、崩溃,临时文件始终会自动保存。
  8. 前端预编译型语言越来越多,每次保存都触发编译比较消耗资源,有了hx,可以专注写代码而不需要隔一会按一下ctrl+s,需要编译时再保存,或编辑多个文件后按ctrl+alt+s全部保存。

2. 语法提示

拥有自研的世界级语法分析引擎一直是HBuilder系列产品傲视业内的资本。
但前端框架众多,框架的语法提示需要加载单独的语法提示库。

框架语法提示库是在页面的右下角选择。(如下图示例)

选择语法提示框

注意

  1. 框架语法库是挂在项目下的,一个项目加载了一个框架语法库后,这个项目下所有js文件或HTML文件都会在代码助手提示这个框架的语法。
  2. 但如果一个文件是单独从硬盘打开,没有整项目拖入hx,那么此时无法加载框架语法库。

3. 代码助手


hx的代码助手,可以按alt+数字选择直接选择某个项目,类似中文输入法数字选词 (如下图示例)

选词

4. 语法帮助


光标放到某api处,按下F1,就可跳转到这个api的官方手册。目前支持vue、uni-app、5+等api (如下图示例)

F1_api

5. 编辑器与项目管理器的同步


hx默认是打开的标签卡和项目管理器自动关联,切换标签卡时项目管理器也会跟随变化,如不需要此功能,可以将鼠标移到项目管理器区域,右上角会悬浮菜单,在里面可以取消“与编辑器同步”。(如下图示例)

编辑器同步

一般多项目时建议取消同步功能。

取消同步后,如需手动定位标签卡所在的项目,可以对编辑器点右键-“在项目管理器中定位”。(如下图示例)

项目管理器定位

6. 多光标


hx支持多光标,按 ctrl+鼠标左键 就可增加一个光标,ctrl+鼠标右键 可取消一个光标或选区。(如下图示例)

多光标

还可以选择相同词。ctrl+e (mac是cmd+d)可选中相同的词做批处理。(如下图示例)

选择相同词

多光标是极客必备工具,高级技巧请参考:https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/13191

7. 列选择


hx的列选择,是alt+鼠标拖选。或者用快捷键ctrl+alt+↑。(如下图示例)

列选择

8. 选择编码、着色高亮


当你打开一个不认识的文档时,即hx的无法高亮着色,可以在右下角选择使用其他编辑器打开。

当你打开一个文件编码错乱,产生乱码时,也可以在右下角选择编码重新打开。(如下图示例)

编码

9. 转到定义


转到定义是非常常用的功能,普通编辑器不长于此,只能猜单词跳转。

HBuilderX有强大的语法分析引擎,可以准确的跳转定义位置。

转到定义的快捷键是Alt+d,鼠标操作是alt+左键单击(注意不是ctrl,因为ctrl留给了多光标)

转到定义

而HBuilderX还有一个特色是转到定义到分栏ctrl+alt+左键,可以把一个定义处的代码打开在另一侧,方便共同查看

转到定义到分栏

如何回到上一个光标位置?

在HBuilderX中,Alt+Left或点击工具栏上的<, 即可回到上一个光标位置。

备注:支持切换【Ctrl+鼠标左键】或【Alt+鼠标左键】进行转到定义 (菜单【选择】,最后一个菜单)。

切换

10. 文件快速打开


在顶部工具栏直接搜索工程下的文件名并打开,或者使用快捷键ctrl+p。(如下图示例)

搜索文件

比较常用的文件,可以在工具栏里添加到收藏夹。(如下图示例)

收藏文件

ctrl+p也是标签卡管理的重要工具,屏幕窄看不清左右打开的标签时,可以用它来浏览所有以打开的标签

11. 目录内搜索


项目管理器点右键,选:查找字符串(当前目录),可在该目录下所有文件中搜索字符串(如下图示例)

按目录查找字符串

12. 缩进调整


hx默认使用tab缩进,tab长度为4个空格。

如果你需要调整缩进长度,比如tab长度为2个空格,在工具设置-编辑器中调整。(如下图示例)

调整缩进示例

如果不喜欢使用tab而喜欢使用空格,也可以在设置中调。注意这个调节只是编辑器里敲tab按键时转为了空格,格式化时仍是tab。

调节格式化设置,参考菜单工具-插件配置。hx支持几种格式化插件,他们都有自己的配置定义文件,请按插件配置中的说明修改设置。(如下图示例)

格式化插件

比如格式化插件Formator-Prettier,它的配置文件为:【工具】【插件配置】【formator-frettier】【formator.config.js】(如下图示例)

Formator-Prettier

在菜单编辑-缩进中,可文件的缩进从tab空格或从空格tab

13. 语法校验


hx的语法校验都是插件,在工具插件安装中选择各种校验插件,不同语言的校验插件不一样。安装校验插件后,保存文件时会自动执行语法校验。(如下图示例)

语法插件

校验概要结果会显示在状态栏,比如有2个错误(如下图),可以按F4切换到不同的错误处,画有红波浪线(如下图),鼠标移到红波浪线上会显示具体的错误信息。(如下图示例)

例子

你也可以不保存,直接点菜单工具-验证本文档校验语法 来进行校验。(如下图示例)

验证本文档语法

15. svn/git项目导入


以git为例:(git项目:需要安装git插件、以及TortoiseGit、并配置ssh秘钥)(如下图示例)

导入git项目

插件名称 Mac操作系统 Windows操作系统
svn Mac SVN教程 Windows SVN教程
git Mac Git教程 Windows Git教程

15. 预编译器(less/sass)


在【菜单】-->【插件安装】里有各种语言的预编译器,比如less、ts等。安装预编译器后,hx下的所有项目均可用共用。

sass示例: (如下图示例)

预编译器安装后使用入口在外部命令菜单中

sass使用教程

sass/less插件配置小技巧:

less、sass可以在插件配置里,配置为保存文件时自动编译。

安装less或sass插件后,进入菜单【工具】【插件配置】【compile-less】,点击package.json文件,将onDidSaveExecution修改为true。注意修改后需要重启HBuilderX才能生效

{  
  "onDidSaveExecution": true  
}

16. 更多文档教程

参考: HBuilderX更多教程

继续阅读 »

本帖文章已集成到: hx产品文档

HX是轻量编辑器和强大IDE的完美结合体。敏捷的性能,清爽的界面,强大的功能和于一身。

本文档面向入门用户,建议初学者仔细研读。

1. 介绍

  1. 执着于更快一步的理念,hx的左侧项目管理器是单击响应而不是双击。
  2. 单击展开目录,单击预览文件,双击打开文件。
  3. 预览文件时顶部标签卡是斜体的,此时继续预览其他文件会替换预览标签卡。双击文件后标签卡为正体,不会被替换。预览的文件一旦开始编辑,也会自动变为正式打开状态。
    预览文件
  4. 项目管理器默认是不显示图标的,可以将鼠标移到项目管理器区域,右上角会悬浮菜单,在里面可以选择显示图标。HBuilderX支持业内多种图标插件,可以在工具-插件安装中找到更多图标插件。
  5. hx的文件保存是免丢失的,并且有热退出功能。所谓热退出,就是关闭hx时不要保存文件。再次打开时仍然是之前的状态。未保存的文件也会继续原样展现。
  6. hx默认带有每30秒保存一次临时文件的策略(可以在设置里调节时间间隔)
  7. 不管是关闭hx,还是断电、崩溃,临时文件始终会自动保存。
  8. 前端预编译型语言越来越多,每次保存都触发编译比较消耗资源,有了hx,可以专注写代码而不需要隔一会按一下ctrl+s,需要编译时再保存,或编辑多个文件后按ctrl+alt+s全部保存。

2. 语法提示

拥有自研的世界级语法分析引擎一直是HBuilder系列产品傲视业内的资本。
但前端框架众多,框架的语法提示需要加载单独的语法提示库。

框架语法提示库是在页面的右下角选择。(如下图示例)

选择语法提示框

注意

  1. 框架语法库是挂在项目下的,一个项目加载了一个框架语法库后,这个项目下所有js文件或HTML文件都会在代码助手提示这个框架的语法。
  2. 但如果一个文件是单独从硬盘打开,没有整项目拖入hx,那么此时无法加载框架语法库。

3. 代码助手


hx的代码助手,可以按alt+数字选择直接选择某个项目,类似中文输入法数字选词 (如下图示例)

选词

4. 语法帮助


光标放到某api处,按下F1,就可跳转到这个api的官方手册。目前支持vue、uni-app、5+等api (如下图示例)

F1_api

5. 编辑器与项目管理器的同步


hx默认是打开的标签卡和项目管理器自动关联,切换标签卡时项目管理器也会跟随变化,如不需要此功能,可以将鼠标移到项目管理器区域,右上角会悬浮菜单,在里面可以取消“与编辑器同步”。(如下图示例)

编辑器同步

一般多项目时建议取消同步功能。

取消同步后,如需手动定位标签卡所在的项目,可以对编辑器点右键-“在项目管理器中定位”。(如下图示例)

项目管理器定位

6. 多光标


hx支持多光标,按 ctrl+鼠标左键 就可增加一个光标,ctrl+鼠标右键 可取消一个光标或选区。(如下图示例)

多光标

还可以选择相同词。ctrl+e (mac是cmd+d)可选中相同的词做批处理。(如下图示例)

选择相同词

多光标是极客必备工具,高级技巧请参考:https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/13191

7. 列选择


hx的列选择,是alt+鼠标拖选。或者用快捷键ctrl+alt+↑。(如下图示例)

列选择

8. 选择编码、着色高亮


当你打开一个不认识的文档时,即hx的无法高亮着色,可以在右下角选择使用其他编辑器打开。

当你打开一个文件编码错乱,产生乱码时,也可以在右下角选择编码重新打开。(如下图示例)

编码

9. 转到定义


转到定义是非常常用的功能,普通编辑器不长于此,只能猜单词跳转。

HBuilderX有强大的语法分析引擎,可以准确的跳转定义位置。

转到定义的快捷键是Alt+d,鼠标操作是alt+左键单击(注意不是ctrl,因为ctrl留给了多光标)

转到定义

而HBuilderX还有一个特色是转到定义到分栏ctrl+alt+左键,可以把一个定义处的代码打开在另一侧,方便共同查看

转到定义到分栏

如何回到上一个光标位置?

在HBuilderX中,Alt+Left或点击工具栏上的<, 即可回到上一个光标位置。

备注:支持切换【Ctrl+鼠标左键】或【Alt+鼠标左键】进行转到定义 (菜单【选择】,最后一个菜单)。

切换

10. 文件快速打开


在顶部工具栏直接搜索工程下的文件名并打开,或者使用快捷键ctrl+p。(如下图示例)

搜索文件

比较常用的文件,可以在工具栏里添加到收藏夹。(如下图示例)

收藏文件

ctrl+p也是标签卡管理的重要工具,屏幕窄看不清左右打开的标签时,可以用它来浏览所有以打开的标签

11. 目录内搜索


项目管理器点右键,选:查找字符串(当前目录),可在该目录下所有文件中搜索字符串(如下图示例)

按目录查找字符串

12. 缩进调整


hx默认使用tab缩进,tab长度为4个空格。

如果你需要调整缩进长度,比如tab长度为2个空格,在工具设置-编辑器中调整。(如下图示例)

调整缩进示例

如果不喜欢使用tab而喜欢使用空格,也可以在设置中调。注意这个调节只是编辑器里敲tab按键时转为了空格,格式化时仍是tab。

调节格式化设置,参考菜单工具-插件配置。hx支持几种格式化插件,他们都有自己的配置定义文件,请按插件配置中的说明修改设置。(如下图示例)

格式化插件

比如格式化插件Formator-Prettier,它的配置文件为:【工具】【插件配置】【formator-frettier】【formator.config.js】(如下图示例)

Formator-Prettier

在菜单编辑-缩进中,可文件的缩进从tab空格或从空格tab

13. 语法校验


hx的语法校验都是插件,在工具插件安装中选择各种校验插件,不同语言的校验插件不一样。安装校验插件后,保存文件时会自动执行语法校验。(如下图示例)

语法插件

校验概要结果会显示在状态栏,比如有2个错误(如下图),可以按F4切换到不同的错误处,画有红波浪线(如下图),鼠标移到红波浪线上会显示具体的错误信息。(如下图示例)

例子

你也可以不保存,直接点菜单工具-验证本文档校验语法 来进行校验。(如下图示例)

验证本文档语法

15. svn/git项目导入


以git为例:(git项目:需要安装git插件、以及TortoiseGit、并配置ssh秘钥)(如下图示例)

导入git项目

插件名称 Mac操作系统 Windows操作系统
svn Mac SVN教程 Windows SVN教程
git Mac Git教程 Windows Git教程

15. 预编译器(less/sass)


在【菜单】-->【插件安装】里有各种语言的预编译器,比如less、ts等。安装预编译器后,hx下的所有项目均可用共用。

sass示例: (如下图示例)

预编译器安装后使用入口在外部命令菜单中

sass使用教程

sass/less插件配置小技巧:

less、sass可以在插件配置里,配置为保存文件时自动编译。

安装less或sass插件后,进入菜单【工具】【插件配置】【compile-less】,点击package.json文件,将onDidSaveExecution修改为true。注意修改后需要重启HBuilderX才能生效

{  
  "onDidSaveExecution": true  
}

16. 更多文档教程

参考: HBuilderX更多教程

收起阅读 »

能否增加一个功能:项目只读开关

在浏览依赖库时总容易不小心碰到键盘。
胸太大了没办法。

在浏览依赖库时总容易不小心碰到键盘。
胸太大了没办法。

Android 获取 手机本机 MAC 地址 支持 所有 Android 版本

Android Native.JS MAC地址

Native.js 获取Android 手机 MAC 物理地址, Android 版本众多,之前的方法已经不支持最新的版本获取MAC地址了

在Android 6.0 之前可以获取MAC 方法,到了6.0版本后,不再支持此方法获取MAC地址了。

此方法,支持移动网络下获取MAC地址

var Context = plus.android.importClass("android.content.Context");  
var WifiManager = plus.android.importClass("android.net.wifi.WifiManager");  
var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);  
var WifiInfo = plus.android.importClass("android.net.wifi.WifiInfo");  
var wifiInfo = wifiManager.getConnectionInfo();  
    wifiInfo.getMacAddress();

Android 6.0之后动态授权对隐私保护高了, 采用的获取MAC 的方法是读取 /sys/class/net/wlan0/address ,

此方法有些型机,只能在WIFI开启的状态下才能获取到MAC 地址

var BufferedReader=plus.android.importClass("java.io.BufferedReader");  
var FileReader=plus.android.importClass("java.io.FileReader");  
var file=new FileReader("/sys/class/net/wlan0/address");       
var reader = new BufferedReader(file,256);  
var address=reader.readLine();  
    reader.close();

Android 7.0 + 以上的方法也都没用了,谷歌对隐私要求更严格了,禁止读取/sys/class/net/wlan0/address 了, 但还是有方法读取到MAC , 采用的是 NetworkInterface 对端口扫描 读取到 wlan0 的值,它就是MAC地址了,

此方法有些型机,只能在WIFI开启的状态下才能获取到MAC 地址

var NetworkInterface=plus.android.importClass("java.net.NetworkInterface");              
var networkInterface = NetworkInterface.getByName("eth1");  
networkInterface = NetworkInterface.getByName("wlan0");  
var mac=networkInterface.getHardwareAddress();

写了一个获取 MAC 的插件,封装了以上三种方法一起,可以获取所有机型的MAC的地址。

有需要的可以到这个下载: http://www.html5-app.com/show/101
获得 MacAddress.js 引到 页面就可以 ,通过以下方法,可以获得MAC 地址。

mui.plusReady(function()  
{  

    var address=Mac.address();  

});
继续阅读 »

Native.js 获取Android 手机 MAC 物理地址, Android 版本众多,之前的方法已经不支持最新的版本获取MAC地址了

在Android 6.0 之前可以获取MAC 方法,到了6.0版本后,不再支持此方法获取MAC地址了。

此方法,支持移动网络下获取MAC地址

var Context = plus.android.importClass("android.content.Context");  
var WifiManager = plus.android.importClass("android.net.wifi.WifiManager");  
var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);  
var WifiInfo = plus.android.importClass("android.net.wifi.WifiInfo");  
var wifiInfo = wifiManager.getConnectionInfo();  
    wifiInfo.getMacAddress();

Android 6.0之后动态授权对隐私保护高了, 采用的获取MAC 的方法是读取 /sys/class/net/wlan0/address ,

此方法有些型机,只能在WIFI开启的状态下才能获取到MAC 地址

var BufferedReader=plus.android.importClass("java.io.BufferedReader");  
var FileReader=plus.android.importClass("java.io.FileReader");  
var file=new FileReader("/sys/class/net/wlan0/address");       
var reader = new BufferedReader(file,256);  
var address=reader.readLine();  
    reader.close();

Android 7.0 + 以上的方法也都没用了,谷歌对隐私要求更严格了,禁止读取/sys/class/net/wlan0/address 了, 但还是有方法读取到MAC , 采用的是 NetworkInterface 对端口扫描 读取到 wlan0 的值,它就是MAC地址了,

此方法有些型机,只能在WIFI开启的状态下才能获取到MAC 地址

var NetworkInterface=plus.android.importClass("java.net.NetworkInterface");              
var networkInterface = NetworkInterface.getByName("eth1");  
networkInterface = NetworkInterface.getByName("wlan0");  
var mac=networkInterface.getHardwareAddress();

写了一个获取 MAC 的插件,封装了以上三种方法一起,可以获取所有机型的MAC的地址。

有需要的可以到这个下载: http://www.html5-app.com/show/101
获得 MacAddress.js 引到 页面就可以 ,通过以下方法,可以获得MAC 地址。

mui.plusReady(function()  
{  

    var address=Mac.address();  

});
收起阅读 »

canvasToTempFilePath 本地打包没用

canvas

HbuildX 最新版本(1.3.0)使用canvasToTempFilePath绘制图片,使用云端打包不会出现绘制为空白的问题。但是使用本地打包的时候,还是会出现在ios中使用canvasToTempFilePath方法绘制图片为空白的情况。不知道是什么原因?

继续阅读 »

HbuildX 最新版本(1.3.0)使用canvasToTempFilePath绘制图片,使用云端打包不会出现绘制为空白的问题。但是使用本地打包的时候,还是会出现在ios中使用canvasToTempFilePath方法绘制图片为空白的情况。不知道是什么原因?

收起阅读 »

预览图片 重写back

                                //图片预览对象      
                var imageViewer;  
                mui.back = function(event) {  
                    //先判断 是否是打开了图片预览 没有直接返回有的话就需要关闭图片预览  
                    if (document.querySelector(".mui-imageviewer-item")) {  
                        imageViewer.viewer.style.opacity = 0;  
                        setTimeout(function() {  
                            imageViewer.viewer.style.display = 'none';  
                            imageViewer.disposeImage(true);  
                        }, 600);  
                    } else {  
                        plus.webview.currentWebview().close();  
                    }  
                }
继续阅读 »
                                //图片预览对象      
                var imageViewer;  
                mui.back = function(event) {  
                    //先判断 是否是打开了图片预览 没有直接返回有的话就需要关闭图片预览  
                    if (document.querySelector(".mui-imageviewer-item")) {  
                        imageViewer.viewer.style.opacity = 0;  
                        setTimeout(function() {  
                            imageViewer.viewer.style.display = 'none';  
                            imageViewer.disposeImage(true);  
                        }, 600);  
                    } else {  
                        plus.webview.currentWebview().close();  
                    }  
                }
收起阅读 »

Android平台离线打包 - 语音识别(Speech)插件配置

离线打包 插件

百度语音设置

需要添加的文件

将以下文件放入工程的libs下

路径 文件名
SDK\libs speech-release.aar、speech_baidu-release.aar

AndroidManifest.xml配置

权限配置

    <uses-permission android:name="android.permission.RECORD_AUDIO" />  
    <uses-permission android:name="android.permission.INTERNET" />  
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />  
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
    <uses-permission  android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

application节点配置

        <meta-data android:name="com.baidu.speech.APP_ID" android:value="${百度语音申请的appid}"/>  
        <meta-data android:name="com.baidu.speech.API_KEY" android:value="${百度语音申请的apikey}"/>  
        <meta-data android:name="com.baidu.speech.SECRET_KEY" android:value="${百度语音申请的secretkey}"/>  
        <service android:name="com.baidu.speech.VoiceRecognitionService" android:exported="false" />

dcloud_properties.xml配置

dcloud_properties.xml文件在assets/data目录下

features节点下设置

        <feature name="Speech" value="io.dcloud.feature.speech.SpeechFeatureImpl">  
            <module name="baidu" value="io.dcloud.feature.speech.BaiduSpeechEngine"/>  
        </feature>

讯飞语音设置

需要添加的文件

将以下文件放入工程的libs下

路径 文件名
SDK\libs speech-release.aar、speech_ifly-release.aar

AndroidManifest.xml配置

权限配置

    <uses-permission android:name="android.permission.RECORD_AUDIO" />  
    <uses-permission android:name="android.permission.INTERNET" />  
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />  
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

application节点配置

        <meta-data  
            android:name="IFLY_APPKEY"  
            android:value="${讯飞语音申请的appid}" />

dcloud_properties.xml配置

dcloud_properties.xml文件在assets/data目录下

features节点下设置

        <feature name="Speech" value="io.dcloud.feature.speech.SpeechFeatureImpl">  
            <module name="iFly" value="io.dcloud.feature.speech.IflySpeechEngine"/>  
        </feature>
继续阅读 »

百度语音设置

需要添加的文件

将以下文件放入工程的libs下

路径 文件名
SDK\libs speech-release.aar、speech_baidu-release.aar

AndroidManifest.xml配置

权限配置

    <uses-permission android:name="android.permission.RECORD_AUDIO" />  
    <uses-permission android:name="android.permission.INTERNET" />  
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />  
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
    <uses-permission  android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

application节点配置

        <meta-data android:name="com.baidu.speech.APP_ID" android:value="${百度语音申请的appid}"/>  
        <meta-data android:name="com.baidu.speech.API_KEY" android:value="${百度语音申请的apikey}"/>  
        <meta-data android:name="com.baidu.speech.SECRET_KEY" android:value="${百度语音申请的secretkey}"/>  
        <service android:name="com.baidu.speech.VoiceRecognitionService" android:exported="false" />

dcloud_properties.xml配置

dcloud_properties.xml文件在assets/data目录下

features节点下设置

        <feature name="Speech" value="io.dcloud.feature.speech.SpeechFeatureImpl">  
            <module name="baidu" value="io.dcloud.feature.speech.BaiduSpeechEngine"/>  
        </feature>

讯飞语音设置

需要添加的文件

将以下文件放入工程的libs下

路径 文件名
SDK\libs speech-release.aar、speech_ifly-release.aar

AndroidManifest.xml配置

权限配置

    <uses-permission android:name="android.permission.RECORD_AUDIO" />  
    <uses-permission android:name="android.permission.INTERNET" />  
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />  
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

application节点配置

        <meta-data  
            android:name="IFLY_APPKEY"  
            android:value="${讯飞语音申请的appid}" />

dcloud_properties.xml配置

dcloud_properties.xml文件在assets/data目录下

features节点下设置

        <feature name="Speech" value="io.dcloud.feature.speech.SpeechFeatureImpl">  
            <module name="iFly" value="io.dcloud.feature.speech.IflySpeechEngine"/>  
        </feature>
收起阅读 »

关于iOS音频后台播放遇到的一些问题

最近在做一个音频相关软件,涉及一个后台播放网络地址音频功能。
就是APP不在主界面活动或锁屏时音频不暂停,能持续播放。
做android兼容时没有问题,到iOS时,只要锁屏就会音频暂停。在各个地搜了好多,给的解决办法是manifest.json加"UIBackgroundModes":["audio"]这个配置并且打包发布后才能生效。各种试打包好多遍也不好用。(用的是纯js写的播放音频)。后来细看帖子说是要用5+写。
总结:
js写法
var player = document.createElement('audio');
player.src="https://www.baidu.com/uploads/1.mp3";
mui写法5+
var player = plus.audio.createPlayer('audio/1.mp3');
js可以支持网络音频,但不支持iOS后台播放。配置文件设置后台可播放不生效,就是配置也不管用
5+支持本地,不支持网络音频(iOS)。配置文件设置后台可播放可以生效,但是不能播放网络音频(试过了播放本地文件是不需要打包就可以后台播放的)
这就是试了好多次没有试出结果的原因,结果就是没有结果。
希望对那些配置文件更改后没能有效果的爬坑群众有所帮助(在这纠结了好多天)
要是有好的解决办法欢迎留言!!!!

继续阅读 »

最近在做一个音频相关软件,涉及一个后台播放网络地址音频功能。
就是APP不在主界面活动或锁屏时音频不暂停,能持续播放。
做android兼容时没有问题,到iOS时,只要锁屏就会音频暂停。在各个地搜了好多,给的解决办法是manifest.json加"UIBackgroundModes":["audio"]这个配置并且打包发布后才能生效。各种试打包好多遍也不好用。(用的是纯js写的播放音频)。后来细看帖子说是要用5+写。
总结:
js写法
var player = document.createElement('audio');
player.src="https://www.baidu.com/uploads/1.mp3";
mui写法5+
var player = plus.audio.createPlayer('audio/1.mp3');
js可以支持网络音频,但不支持iOS后台播放。配置文件设置后台可播放不生效,就是配置也不管用
5+支持本地,不支持网络音频(iOS)。配置文件设置后台可播放可以生效,但是不能播放网络音频(试过了播放本地文件是不需要打包就可以后台播放的)
这就是试了好多次没有试出结果的原因,结果就是没有结果。
希望对那些配置文件更改后没能有效果的爬坑群众有所帮助(在这纠结了好多天)
要是有好的解决办法欢迎留言!!!!

收起阅读 »