HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

[备份] observer

备份自己的东西,有兴趣的自己下载看看内容也可以,仅仅是练习下observer的简单实现

备份自己的东西,有兴趣的自己下载看看内容也可以,仅仅是练习下observer的简单实现

就缺打包了 wap2app真是太好用了 为工程师点赞 国庆中秋愉快!

就缺打包了 wap2app真是太好用了 为工程师点赞 国庆中秋愉快!

就缺打包了 wap2app真是太好用了 为工程师点赞 国庆中秋愉快!

可否增加执行到哪一行的提示功能?

有很多时候,程序运行过程中停止,不知道哪一行出了问题,得自己一行一行验证查找,可否增加程序最后运行到哪一行的提示?这样可以节省不少的工作量,使用起来也更加方便。

有很多时候,程序运行过程中停止,不知道哪一行出了问题,得自己一行一行验证查找,可否增加程序最后运行到哪一行的提示?这样可以节省不少的工作量,使用起来也更加方便。

Android平台HTML5+运行环境调整硬件加速及窗口动画截屏加速默认值

窗口动画 硬件加速 HTML5+

新版本HBuilder8.3.0进行如下调整

硬件加速

调整为所有设备默认开启硬件加速(之前在Android5设备上默认不开启硬件加速)
开启硬件加速后可能会在部分Android5设备上出现页面滚动花屏的问题,这时应该避免在页面中减少使用高分辨率图片。
如果确实需要使用高分辨率图片也可以自定义配置关闭硬件加速,参考Android硬件加速详解

窗口动画截屏加速

为了确保窗口动画流畅度,避免窗口闪屏,HTML5+运行环境会自动进行截屏优化。

pop-in/pop-out动画

Android5.0及以上:默认不使用截屏加速
Android5.0以下:如果Webview中存在subNView则pop-in动画默认不使用截图加速,pop-out动画默认使用截图加速;如果Webview中不存在subNView则默认不使用截图加速
使用截屏加速可能会引起动画延迟响应(截屏操作耗时),因此调整默认保证pop-in动画流畅, pop-out动画避免闪屏。
(之前版本在所有设备上默认都使用截屏加速)

slide-*动画

默认不使用截图加速
此种情况下如果碰到页面分块渲染,应该避免在页面中使用高分辨率图片,或者关闭硬件加速,或者使用subNView来优化页面。
(之前版本在Android5.0及以下设备上窗口关闭时使用截图加速)

fade-in/fade-out动画

默认使用截图加速
(与之前版本默认值一致)

如果希望修改默认值,可以通过Webview窗口显示/隐藏/关闭方法的WebviewExtraOptions参数的acceleration属性修改默认值。

继续阅读 »

新版本HBuilder8.3.0进行如下调整

硬件加速

调整为所有设备默认开启硬件加速(之前在Android5设备上默认不开启硬件加速)
开启硬件加速后可能会在部分Android5设备上出现页面滚动花屏的问题,这时应该避免在页面中减少使用高分辨率图片。
如果确实需要使用高分辨率图片也可以自定义配置关闭硬件加速,参考Android硬件加速详解

窗口动画截屏加速

为了确保窗口动画流畅度,避免窗口闪屏,HTML5+运行环境会自动进行截屏优化。

pop-in/pop-out动画

Android5.0及以上:默认不使用截屏加速
Android5.0以下:如果Webview中存在subNView则pop-in动画默认不使用截图加速,pop-out动画默认使用截图加速;如果Webview中不存在subNView则默认不使用截图加速
使用截屏加速可能会引起动画延迟响应(截屏操作耗时),因此调整默认保证pop-in动画流畅, pop-out动画避免闪屏。
(之前版本在所有设备上默认都使用截屏加速)

slide-*动画

默认不使用截图加速
此种情况下如果碰到页面分块渲染,应该避免在页面中使用高分辨率图片,或者关闭硬件加速,或者使用subNView来优化页面。
(之前版本在Android5.0及以下设备上窗口关闭时使用截图加速)

fade-in/fade-out动画

默认使用截图加速
(与之前版本默认值一致)

如果希望修改默认值,可以通过Webview窗口显示/隐藏/关闭方法的WebviewExtraOptions参数的acceleration属性修改默认值。

收起阅读 »

手动取消当前视图键盘焦点,参考iOS原生功能实现

iOS 键盘 弹出软键盘

/*

  • 手动取消当前视图键盘焦点,参考iOS原生功能实现
    */
    function removeBodyFocus() {
    var focusElement = document.getElementsByTagName("body")[0];
    if(focusElement.classList.contains("mui-focusin")) {
    focusElement.classList.remove("mui-focusin");
    focusElement.parentNode.replaceChild(focusElement, document.getElementsByTagName("body")[0]);
    }
    }
继续阅读 »

/*

  • 手动取消当前视图键盘焦点,参考iOS原生功能实现
    */
    function removeBodyFocus() {
    var focusElement = document.getElementsByTagName("body")[0];
    if(focusElement.classList.contains("mui-focusin")) {
    focusElement.classList.remove("mui-focusin");
    focusElement.parentNode.replaceChild(focusElement, document.getElementsByTagName("body")[0]);
    }
    }
收起阅读 »

【解决方案】关于Mac系统升级到10.13后遇到HBuilder菜单不能用的问题

macos high sierra HBuilder

经查验和升级到最新版Mac系统有关(目前只有10.13的系统会有此问题)

解决方法如下:
1.找到HBuilder安装目录,【右键】-【显示包内容】

  1. 将附件中的文件patch.zip解压到Contents目录下,覆盖掉原来的Info.plist文件。
  2. 重启

如果没有解决,请加QQ:824810885咨询。

参考:https://www.eclipse.org/org/press-release/20170925criticalbug.php

继续阅读 »

经查验和升级到最新版Mac系统有关(目前只有10.13的系统会有此问题)

解决方法如下:
1.找到HBuilder安装目录,【右键】-【显示包内容】

  1. 将附件中的文件patch.zip解压到Contents目录下,覆盖掉原来的Info.plist文件。
  2. 重启

如果没有解决,请加QQ:824810885咨询。

参考:https://www.eclipse.org/org/press-release/20170925criticalbug.php

收起阅读 »

APP点亮屏幕云打包后闪退问题解决

最近开发了一款APP,有一个页码是我的二维码功能。需要用户打开二维码页面的时候自动点亮屏幕。返回到其他页面时恢复原始亮度。因为我的APP属于工具性质。 并不需要很多其他的地图位置信息等等的权限。于是我在权限设置的时候做了精简。如下图所示

结果问题来了,调试的时候好好的。能够完美适应功能需求,一云打包就悲剧了。点开我的二维码APP立马闪退。我以为是云打包的问题。 下载SDK离线打包。去掉AndroidManifest.xml中不需要的模块及权限后问题依旧。 后来经过仔细分析发现有一个权限android.permission.WRITE_SETTINGS官方配置在了地图模块之下。所以在云打包的时候如果你不选择地图模块同时去掉了模块的相关权限之后这个负责读写系统设置项的权限就不会被打包进APP从而导致应用崩溃。

解决方法:
第一种:把地图模块添加进打包。
第二种:如果没有地图模块的需求可在右侧的Android权限设置中把android.permission.WRITE_SETTINGS权限勾选上即可

继续阅读 »

最近开发了一款APP,有一个页码是我的二维码功能。需要用户打开二维码页面的时候自动点亮屏幕。返回到其他页面时恢复原始亮度。因为我的APP属于工具性质。 并不需要很多其他的地图位置信息等等的权限。于是我在权限设置的时候做了精简。如下图所示

结果问题来了,调试的时候好好的。能够完美适应功能需求,一云打包就悲剧了。点开我的二维码APP立马闪退。我以为是云打包的问题。 下载SDK离线打包。去掉AndroidManifest.xml中不需要的模块及权限后问题依旧。 后来经过仔细分析发现有一个权限android.permission.WRITE_SETTINGS官方配置在了地图模块之下。所以在云打包的时候如果你不选择地图模块同时去掉了模块的相关权限之后这个负责读写系统设置项的权限就不会被打包进APP从而导致应用崩溃。

解决方法:
第一种:把地图模块添加进打包。
第二种:如果没有地图模块的需求可在右侧的Android权限设置中把android.permission.WRITE_SETTINGS权限勾选上即可

收起阅读 »

IOS10+播放视频弹出的解决方法。

iOS 视频

如题

  1. html中的video加上:playsinline
    <video playsinline></video>
    2.JS中写上这么一句话
    plus.ios.currentWebview().plusSetAttribute('allowsInlineMediaPlayback',true)
继续阅读 »

如题

  1. html中的video加上:playsinline
    <video playsinline></video>
    2.JS中写上这么一句话
    plus.ios.currentWebview().plusSetAttribute('allowsInlineMediaPlayback',true)
收起阅读 »

mui h5支付

在做mui项目的时候遇到h5支付一个比较奇葩的问题,在跳转页面的时候需要构造头部referer
,不够构造头部就会一直提示商家参数错误,所以这里给大家分享一下如何构造头部referer
如下所示代码
var fp = new Fingerprint2();
fp.get(function(result) {
//alert(payurl);
mui.openWindow({
url:payurl,
id: 'payurl',
styles:{
additionalHttpHeaders: {
referer:""
}
},
waiting: {
autoShow: true, //自动显示等待框,默认为true
title: '正在加载支付页面......', //等待对话框上显示的提示内容
},

            });   

        });  

注意 其中referer 设置是比较有讲究的 需要设置成在申请h5支付的时候的域名才可成功

继续阅读 »

在做mui项目的时候遇到h5支付一个比较奇葩的问题,在跳转页面的时候需要构造头部referer
,不够构造头部就会一直提示商家参数错误,所以这里给大家分享一下如何构造头部referer
如下所示代码
var fp = new Fingerprint2();
fp.get(function(result) {
//alert(payurl);
mui.openWindow({
url:payurl,
id: 'payurl',
styles:{
additionalHttpHeaders: {
referer:""
}
},
waiting: {
autoShow: true, //自动显示等待框,默认为true
title: '正在加载支付页面......', //等待对话框上显示的提示内容
},

            });   

        });  

注意 其中referer 设置是比较有讲究的 需要设置成在申请h5支付的时候的域名才可成功

收起阅读 »

HBuilder8.8.5,重磅新品wap2app上线,支持云端打包,原生nview加持,体验快到震惊!

wap2app 更新日志

HBuilder 8.8.5发布,重磅新品wap2app上线,支持云端打包,原生nview加持,体验快到震惊!

手机wap站,能不能快速转换成app,并且达到app的功能体验?
这个问题已经提出好久好久了。
好久到,现在大多数人已经不对这个问题抱有希望了。

但,如果真能做到呢?

wap2app,是DCloud公司的重磅新产品。
它是一个开发框架,更接近mui,底层封装了HTML5Plus的各种能力。

也就是从现在起,DCloud给开发者提供了2种开发模式:

  1. 从头开发,使用mui框架,开发一次,app和wap站都有了;
  2. 已有wap站,则使用wap2app框架,把wap站强化为app。

wap2app这个项目DCloud其实已经开发数年,在HBuilder alpha版中也早已存在。
经历过很多项目实践、打磨,现在我们终于把它正式推出。

真实效果到底怎么样?我们来看段视频。
看看基于wap2app转换的应用,和原生应用相比到底有多大体验差别。

  • 实验环境说明:
    手机设备相同(华为荣耀8青春版,2016年上市,千元机代表)、网络环境相同、使用前均清理了内存,原生应用使用最新版。

  • 实验视频:唯品会、大众点评流应用与原生应用对比

  • 实验结论:
    新页面渲染速度和原生不相上下,在300毫秒的动画期间即可渲染,而且动画平顺。

为什么加载这么快呢?因为wap2app封装了5+引擎里的原生渲染能力和原生动画能力。
在新页面加载时,是由plus.nativeObj.view来渲染的页面。

那么强化一个wap站要多久呢?
嗯,中等规模的wap站大约4天左右。
这里有详细的开发文档:http://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/1244,快来试试吧。
与DCloud的所有开发者产品一样,这也是一个纯免费的工具。

产业发展的车轮一直在滚滚向前,无人能阻挡。
或许,你又见证了一次重大改变。

附,HBuilder 8.8.4的release note

IDE

  • 【重要】新增wap2app项目类型,将现有M站快速发布成App的增强方案。[详情>>>]http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/1244)
  • 【重要】新增调试Android/iOS设备应用的功能(无需翻墙!!!运行时会自动切换右上角webview调试视图)
  • 【重要】真机运行添加自定义基座运行,使用方法同真机运行。教程参考:https://ask.dcloud.net.cn/article/12723
  • 优化设置默认编辑器的体验(可直接右键【打开方式】-【选择默认编辑器...】)
  • 修复创建web项目时在某些机器上输入项目名称会卡的问题
  • 修复html标签带“-”号时的高亮问题
  • 新建移动App时,增加原生tab选项卡项目模板,教程参考:http://ask.dcloud.net.cn/article/12602
  • 新建HTML页面时,支持选择单webview模式下拉刷新页面组模板
  • 新建HTML页面时,支持选择列表到详情最佳实践页面组模板

App

  • 新增原生View控件绘制富文本内容(richtext)及文本编辑框(input)
  • 新增Webview窗口的titleNView支持设置初始化绘制内容(WebviewTitleNViewStyles.tags)
  • 新增Webview窗口支持控制是否可选择页面文本内容,即是否弹出系统复制粘贴菜单(WebviewStyles.userSelect)
  • 新增确认对话框(plus.nativeUI.confirm)支持设置垂直方向对齐方式(ConfirmOptions.verticalAlign)
  • 新增自动消失提示框(plus.nativeUI.toast)支持显示富文本内容(richtext)
  • 新增图片保存到相册后返回路径,在图片选择时可设置为默认选择此图片
  • Android平台调整硬件加速和截屏策略。详情
  • Android平台更新第三方SDK:个推(2.10.3.5),新浪微博(4.1)
  • Android平台新增预载网络页面代码但不渲染的功能(plus.webview.prefetchURL/plus.webview.prefetchURLs)
  • Android平台修复横竖屏切换可能导致获取屏幕宽度(plus.screen.resolutionWidth)不对的问题
  • Android平台修复Webview窗口快速拖拽(drag)操作可能导致页面显示白屏的问题
  • Android平台修复图片轮播控件控件(ImageSlider)显示两张图时循环控制逻辑错误的问题
  • Android平台修复操作图片选择控件后缓存到应用私有目录可能导致应用空间占用过大的问题
  • Android平台修复在7.0上调用拍照或录像时可能出现异常的问题
  • Android平台修复下载模块可能出现下载失败的问题
  • iOS平台修复使用原生混淆可能会概率出现启动白屏的问题
  • iOS平台修复调用plus.nativeUI.confirm后再调用plus.nativeUI.alert可能导致回调函数无法触发的问题
  • iOS平台修复原生View控件以dock方式添加到Webview窗口隐藏后显示显示不正确的问题
  • 新增Map地图控件对象支持关闭(close)操作
  • Android平台修复压缩图片在部分设备上可能出现崩溃的问题
  • Android平台修复百度地图在部分设备上可能无法正常显示标点图片的问题
  • iOS平台修复应用中存在侧滑菜单通过wgt升级更新后重启应用侧滑菜单显示不正常的问题

MUI

  • 修复picker选择器控件的潜在bug,issues #348
  • 修复Hello MUI在iOS平台无法跳转appstore进行评分的bug
  • 解决DIV模式的时间选择器,点击遮罩或取消按钮,反复关闭/显示,重复创建picker控件的bug
  • 优化subNView模式的底部选项卡实现

wap2app

  • 【重要】wap2app产品发布,支持将现有M站快速发布成App,参考教程
  • 开源plusShare,快速分享到微信消息、朋友圈及更多系统分享,参考教程
继续阅读 »

HBuilder 8.8.5发布,重磅新品wap2app上线,支持云端打包,原生nview加持,体验快到震惊!

手机wap站,能不能快速转换成app,并且达到app的功能体验?
这个问题已经提出好久好久了。
好久到,现在大多数人已经不对这个问题抱有希望了。

但,如果真能做到呢?

wap2app,是DCloud公司的重磅新产品。
它是一个开发框架,更接近mui,底层封装了HTML5Plus的各种能力。

也就是从现在起,DCloud给开发者提供了2种开发模式:

  1. 从头开发,使用mui框架,开发一次,app和wap站都有了;
  2. 已有wap站,则使用wap2app框架,把wap站强化为app。

wap2app这个项目DCloud其实已经开发数年,在HBuilder alpha版中也早已存在。
经历过很多项目实践、打磨,现在我们终于把它正式推出。

真实效果到底怎么样?我们来看段视频。
看看基于wap2app转换的应用,和原生应用相比到底有多大体验差别。

  • 实验环境说明:
    手机设备相同(华为荣耀8青春版,2016年上市,千元机代表)、网络环境相同、使用前均清理了内存,原生应用使用最新版。

  • 实验视频:唯品会、大众点评流应用与原生应用对比

  • 实验结论:
    新页面渲染速度和原生不相上下,在300毫秒的动画期间即可渲染,而且动画平顺。

为什么加载这么快呢?因为wap2app封装了5+引擎里的原生渲染能力和原生动画能力。
在新页面加载时,是由plus.nativeObj.view来渲染的页面。

那么强化一个wap站要多久呢?
嗯,中等规模的wap站大约4天左右。
这里有详细的开发文档:http://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/1244,快来试试吧。
与DCloud的所有开发者产品一样,这也是一个纯免费的工具。

产业发展的车轮一直在滚滚向前,无人能阻挡。
或许,你又见证了一次重大改变。

附,HBuilder 8.8.4的release note

IDE

  • 【重要】新增wap2app项目类型,将现有M站快速发布成App的增强方案。[详情>>>]http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/1244)
  • 【重要】新增调试Android/iOS设备应用的功能(无需翻墙!!!运行时会自动切换右上角webview调试视图)
  • 【重要】真机运行添加自定义基座运行,使用方法同真机运行。教程参考:https://ask.dcloud.net.cn/article/12723
  • 优化设置默认编辑器的体验(可直接右键【打开方式】-【选择默认编辑器...】)
  • 修复创建web项目时在某些机器上输入项目名称会卡的问题
  • 修复html标签带“-”号时的高亮问题
  • 新建移动App时,增加原生tab选项卡项目模板,教程参考:http://ask.dcloud.net.cn/article/12602
  • 新建HTML页面时,支持选择单webview模式下拉刷新页面组模板
  • 新建HTML页面时,支持选择列表到详情最佳实践页面组模板

App

  • 新增原生View控件绘制富文本内容(richtext)及文本编辑框(input)
  • 新增Webview窗口的titleNView支持设置初始化绘制内容(WebviewTitleNViewStyles.tags)
  • 新增Webview窗口支持控制是否可选择页面文本内容,即是否弹出系统复制粘贴菜单(WebviewStyles.userSelect)
  • 新增确认对话框(plus.nativeUI.confirm)支持设置垂直方向对齐方式(ConfirmOptions.verticalAlign)
  • 新增自动消失提示框(plus.nativeUI.toast)支持显示富文本内容(richtext)
  • 新增图片保存到相册后返回路径,在图片选择时可设置为默认选择此图片
  • Android平台调整硬件加速和截屏策略。详情
  • Android平台更新第三方SDK:个推(2.10.3.5),新浪微博(4.1)
  • Android平台新增预载网络页面代码但不渲染的功能(plus.webview.prefetchURL/plus.webview.prefetchURLs)
  • Android平台修复横竖屏切换可能导致获取屏幕宽度(plus.screen.resolutionWidth)不对的问题
  • Android平台修复Webview窗口快速拖拽(drag)操作可能导致页面显示白屏的问题
  • Android平台修复图片轮播控件控件(ImageSlider)显示两张图时循环控制逻辑错误的问题
  • Android平台修复操作图片选择控件后缓存到应用私有目录可能导致应用空间占用过大的问题
  • Android平台修复在7.0上调用拍照或录像时可能出现异常的问题
  • Android平台修复下载模块可能出现下载失败的问题
  • iOS平台修复使用原生混淆可能会概率出现启动白屏的问题
  • iOS平台修复调用plus.nativeUI.confirm后再调用plus.nativeUI.alert可能导致回调函数无法触发的问题
  • iOS平台修复原生View控件以dock方式添加到Webview窗口隐藏后显示显示不正确的问题
  • 新增Map地图控件对象支持关闭(close)操作
  • Android平台修复压缩图片在部分设备上可能出现崩溃的问题
  • Android平台修复百度地图在部分设备上可能无法正常显示标点图片的问题
  • iOS平台修复应用中存在侧滑菜单通过wgt升级更新后重启应用侧滑菜单显示不正常的问题

MUI

  • 修复picker选择器控件的潜在bug,issues #348
  • 修复Hello MUI在iOS平台无法跳转appstore进行评分的bug
  • 解决DIV模式的时间选择器,点击遮罩或取消按钮,反复关闭/显示,重复创建picker控件的bug
  • 优化subNView模式的底部选项卡实现

wap2app

  • 【重要】wap2app产品发布,支持将现有M站快速发布成App,参考教程
  • 开源plusShare,快速分享到微信消息、朋友圈及更多系统分享,参考教程
收起阅读 »

cookie

Cookie

cookie的构成

Name:一个唯一确定cookie的名称。cookie名称是不区分大小写的,所以myCookie和MyCookie被认为是同一个cookie。然而,实践中最好见cookie看做是区分大小写的,因为某些服务器会这样处理cookie。cookie的名称必须经过URL编码。
Value:存储在cookie中的字符串值。值必须被URL编码。
Domain:cookie对于哪个域是有效的。所有向改域发送的请求中都会包含着个cookie信息。这个值可以包含子域名(subdomain)。如果没有明确设定,这个域会被认作来自设置cookie的那个域。
Path:对于指定域中的路径,应该向服务器发送cookie。例如,你可以指定cookie只有从http://www.XXX.com/books中才能访问,那么http://www.XXX.com的页面就不会发送cookie信息,即使请求都是来自同一个域的。
Expires:标识cookie何时应该被删除的时间戳。默认情况下,浏览器会话结束时即将所有cookie删除;也可以自己设置删除时间。这个值是GMT格式的日期,用于指定应该删除cookie的准确时间。因此,cookie可在浏览器关闭后依然保存在用户的机器上。如果设置的是之前的时间,则cookie会被立刻删除。
Size:cookie的大小。
Secure:指定后,cookie只有在使用ssl链接的时候才会发送到服务器。例如:cookie信息只能发送给https://www.xxx.com,而http://www.xxx.com的请求则不能发送cookie。
每一段信息都作为Set-Cookie头的一部分,使用分号加空格分隔每一段,如下:
Set-Cookie:name=value;expires=XXX GMT;domain=.wrox.com

继续阅读 »

cookie的构成

Name:一个唯一确定cookie的名称。cookie名称是不区分大小写的,所以myCookie和MyCookie被认为是同一个cookie。然而,实践中最好见cookie看做是区分大小写的,因为某些服务器会这样处理cookie。cookie的名称必须经过URL编码。
Value:存储在cookie中的字符串值。值必须被URL编码。
Domain:cookie对于哪个域是有效的。所有向改域发送的请求中都会包含着个cookie信息。这个值可以包含子域名(subdomain)。如果没有明确设定,这个域会被认作来自设置cookie的那个域。
Path:对于指定域中的路径,应该向服务器发送cookie。例如,你可以指定cookie只有从http://www.XXX.com/books中才能访问,那么http://www.XXX.com的页面就不会发送cookie信息,即使请求都是来自同一个域的。
Expires:标识cookie何时应该被删除的时间戳。默认情况下,浏览器会话结束时即将所有cookie删除;也可以自己设置删除时间。这个值是GMT格式的日期,用于指定应该删除cookie的准确时间。因此,cookie可在浏览器关闭后依然保存在用户的机器上。如果设置的是之前的时间,则cookie会被立刻删除。
Size:cookie的大小。
Secure:指定后,cookie只有在使用ssl链接的时候才会发送到服务器。例如:cookie信息只能发送给https://www.xxx.com,而http://www.xxx.com的请求则不能发送cookie。
每一段信息都作为Set-Cookie头的一部分,使用分号加空格分隔每一段,如下:
Set-Cookie:name=value;expires=XXX GMT;domain=.wrox.com

收起阅读 »

mui通过native.js调用安卓原生类库,通过广播方式实现扫码结果的接收

Native.JS mui 默认话题

这几天通过mui来做PDA扫码接收,想通过广播的方式进行扫描结果的接收。所以通过native.js使用原生安卓类库,要实现广播必须使用安卓BroadcastReceiver类库;但是这个类库是抽象类,没法实例化;通过查询,发现mui对这个类库进行了映射;这样就可以轻松使用这个类库操作进行功能实现了;

     function plusReady() {        
            var main = plus.android.runtimeMainActivity(); //获取activity  
                            var context = plus.android.importClass('android.content.Context'); //上下文  
                           var  receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {  
                onReceive: getReceive //实现onReceiver回调函数  
            });  
            var IntentFilter = plus.android.importClass('android.content.IntentFilter');//引入过滤器  
            var Intent = plus.android.importClass('android.content.Intent');  
            var filter = new IntentFilter();  

            filter.addAction("lachesis_barcode_value_notice_broadcast"); //监听扫码广播  
            main.registerReceiver(receiver, filter); //注册监听  
                    }  
      function getReceive (context, intent) {  
            alert(intent.getStringExtra("lachesis_barcode_value_notice_broadcast_data_string"));//获取到的值,根据需要自行处理结果  
        }  

因为确实资料很少,费了不少时间;所以,分享给大家,希望对大家有用,谢谢;

继续阅读 »

这几天通过mui来做PDA扫码接收,想通过广播的方式进行扫描结果的接收。所以通过native.js使用原生安卓类库,要实现广播必须使用安卓BroadcastReceiver类库;但是这个类库是抽象类,没法实例化;通过查询,发现mui对这个类库进行了映射;这样就可以轻松使用这个类库操作进行功能实现了;

     function plusReady() {        
            var main = plus.android.runtimeMainActivity(); //获取activity  
                            var context = plus.android.importClass('android.content.Context'); //上下文  
                           var  receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {  
                onReceive: getReceive //实现onReceiver回调函数  
            });  
            var IntentFilter = plus.android.importClass('android.content.IntentFilter');//引入过滤器  
            var Intent = plus.android.importClass('android.content.Intent');  
            var filter = new IntentFilter();  

            filter.addAction("lachesis_barcode_value_notice_broadcast"); //监听扫码广播  
            main.registerReceiver(receiver, filter); //注册监听  
                    }  
      function getReceive (context, intent) {  
            alert(intent.getStringExtra("lachesis_barcode_value_notice_broadcast_data_string"));//获取到的值,根据需要自行处理结果  
        }  

因为确实资料很少,费了不少时间;所以,分享给大家,希望对大家有用,谢谢;

收起阅读 »