nativeObj
nativeObj管理系统原生对象。
对象:
- Bitmap: 原生图片对象
- BitmapSaveOptions: JSON对象,保存图片的参数
- View: 原生控件对象
- AnimationOptions: 原生动画参数
- AnimationViewStyles: 原生动画窗口样式
- Rect: 区域信息对象
- Position: 区域信息对象
- TextStyles: 文本样式对象
- ViewAnimationOptions: View控件动画参数
- ViewDrawTagStyles: View控件绘制元素参数
- ViewEvents: View控件事件
- ViewStatusbarStyles: JSON对象,View控件的系统状态栏区域样式
- ViewStyles: View控件样式
回调方法:
- BitmapSaveSuccessCallback: 图片保存操作成功回调接口
- TouchEventCallback: 触屏事件的回调函数
- NativeObjSuccessCallback: 操作成功回调函数接口
- NativeObjErrorCallback: 操作错误回调函数接口
权限:
5+功能模块(permissions)
{ // ... "permissions":{ // ... "NativeObj": { "description": "原生对象" } } }
Bitmap
原生图片对象
interface Bitmap { readonly attribute String id; static function Array[Bitmap] getItems(); static function Bitmap getBitmapById( id ); function void clear(); function void load( path, successCallback, errorCallback ); function void loadBase64Data( data, successCallback, errorCallback ); function void save( path, options, successCallback, errorCallback ); function String toBase64Data(); }
说明:
原生图片对象会占用较大的内存资源,在使用时需谨慎管理,当图片不再使用时应该及时调用clear方法进行销毁。
构造:
- Bitmap(id, path): 创建Bitmap对象
属性:
- id: Bitmap对象的标识
方法:
- getItems: 静态方法,获取所有Bitmap图片对象
- getBitmapById: 静态方法,获取指定标识的Bitmap图片对象
- clear: 销毁Bitmap图片
- load: 加载Bitmap图片
- loadBase64Data: 加载Base64编码格式图片到Bitmap对象
- recycle: 回收Bitmap图片内存
- save: 保存图片
- toBase64Data: 获取图片的Base64编码数据
BitmapSaveOptions
JSON对象,保存图片的参数
interface BitmapSaveOptions { attribute Boolean overwrite; attribute String format; attribute Number quality; attribute Rect clip; }
属性:
- overwrite: (Boolean
类型
)覆盖保存图片文件
仅在保存的图片路径文件存在时有效: true表示覆盖存在的文件; false表示不覆盖,如果文件存在,则返回失败。 默认值为false。
- format: (String
类型
)保存图片的格式
支持"jpg"、"png",如果未指定则默认使用指定的保存路径后缀对应的文件格式,如果后缀文件格式无效则使用jpg格式。
- quality: (Number
类型
)保存图片的质量
取值范围为1-100,1表示使用最低的图片质量(保存后的图片文件最小)、100表示使用最高的图片质量(保存后的图片文件最大); 默认值为50。
- clip: (Rect
类型
)指定裁剪区域保存图片
相对于图片的区域信息,默认值为{top:'0px',left:'0px',width:'100%',height:'100%'}。
View
原生控件对象
interface View { readonly attribute String id; static function void startAnimation(options, view, otherview, callback); static function void clearAnimation(type); static function View getViewById(id); function void addEventListener(event, listener, capture); function void animate(options, callback); function void close(); function void clearRect(position, id); function void draw(tags); function void drawBitmap(src, sprite, position, id); function void drawRect(color, position, id); function void drawText(text, position, styles, id); function void reset(); function void restore(); function void show(); function void setStyle(styles); function void setTouchEventRect(rect); function void hide(); function void interceptTouchEvent(intercept); function Boolean isVisible(); }
说明:
原生控件对象可用于在屏幕上绘制图片或文本内容,当控件不再使用时需要调用clear方法销毁控件。
构造:
- View(id, styles, tags): 创建View对象
属性:
- id: View对象的标识
方法:
- startAnimation: 静态方法,开始原生动画
- clearAnimation: 静态方法,关闭原生动画窗口
- getViewById: 静态方法,获取指定标识的View控件对象
- addEventListener: 添加事件监听器
- animate: View控件内容动画
- close: 关闭View控件
- clearRect: 清空矩形区域
- draw: 绘制内容
- drawBitmap: 绘制图片
- drawRect: 绘制矩形区域
- drawText: 绘制文本
- reset: 重置view控件显示内容
- restore: 恢复View控件显示内容
- show: 显示View控件
- setStyle: 设置View控件的样式
- setTouchEventRect: 指定监听触屏事件区域
- hide: 隐藏View控件
- interceptTouchEvent: 是否拦截View控件的触屏事件
- isVisible: 获取View控件的显示状态
AnimationOptions
原生动画参数
interface AnimationOptions { attribute String type; attribute Number duration; }
说明:
指定动画的类型、持续时间等信息。
属性:
- type: (String
类型
)动画类型
可取值: "pop-in" - 从右侧平移入栈动画效果(副窗口从右侧向左平移滑出显示,主窗口从当前屏幕区域向左侧平移滑出被遮盖),如果仅传入一个View控件对象则自动降级为slide-in-right动画; "pop-out" - 从右侧平移出栈动画效果(副窗口从当前屏幕区域向右侧平移出可视区域,主窗口从左侧向右平移滑出显示),如果仅出入一个View控件对象则自动降级为slide-out-right动画; "slide-in-right" - 从右侧横向滑动效果(主窗口从当前屏幕右侧外向内横向滑动显示); "slide-out-right - 横向向右侧滑出屏幕动画(主窗口从屏幕中横向向右侧滑动到屏幕外)。
- duration: (Number
类型
)动画持续时间
单位为毫秒,默认值为200ms。
AnimationViewStyles
原生动画窗口样式
interface AnimationViewStyles { attribute Bitmap bitmap; attribute String text; }
说明:
指定动画窗口的样式,如背景图片,绘制的文字等。
属性:
- bitmap: (Bitmap
类型
)动画窗口上绘制的背景图片
图片可以通过Webview对象的draw方法截图,也可以通过Bitmap的API从本地文件中加载。
- text: (String
类型
)动画窗口上绘制的文本内容
- textStyles: (TextStyles
类型
)动画窗口上绘制的文本样式
- textRect: (Rect
类型
)动画窗口上绘制的文本区域
默认值为{top:'0px',left:'0px',width:'100%',height:'44px'}。
Rect
区域信息对象
interface Rect { attribute String top; attribute String left; attribute String width; attribute String height; }
说明:
包括位置、大小等信息。
属性:
- top: (String
类型
)区域左上角的垂直偏移量
可取值:像素值,如"100px";百分比,如"10%",相对于作用对象的高度;自动计算,如"auto",根据height值自动计算,相对于作用对象垂直居中。
- left: (String
类型
)区域左上角的水平偏移量
可取值:像素值,如"100px";百分比,如"10%",相对于作用对象的宽度;自动计算,如"auto",根据width值自动计算,相对于作用对象水平居中。
- width: (String
类型
)区域的宽度
可取值:像素值,如"100px";百分比,如"10%",相对于作用对象的宽度。
- height: (String
类型
)区域的高度
可取值:像素值,如"100px";百分比,如"10%",相对于作用对象的高度。
Position
区域信息对象
interface Position { attribute String top; attribute String left; attribute String width; attribute String height; attribute String bottom; attribute String right; }
说明:
包括位置、大小等信息。
属性:
- top: (String
类型
)区域顶部相对于作用对象(或容器)向下的偏移量
可取值:像素值,如"100px";百分比,如"10%",相对于作用对象(或容器)的高度; 自动计算,如"auto",根据height值自动计算,相对于作用对象(或容器)垂直居中。
- left: (String
类型
)区域左侧相对于作用对象(或容器)向右的偏移量
可取值:像素值,如"100px";百分比,如"10%",相对于作用对象(或容器)的宽度; 自动计算,如"auto",根据width值自动计算,相对于作用对象(或容器)水平居中。
- width: (String
类型
)区域的宽度
可取值:像素值,如"100px";百分比,如"10%",相对于作用对象(或容器)的宽度。
- height: (String
类型
)区域的高度
可取值:像素值,如"100px";百分比,如"10%",相对于作用对象(或容器)的高度。
- bottom: (String
类型
)区域底部相对于作用对象(或容器)向上的偏移量
可取值:像素值,如"100px";百分比,如"10%",相对于作用对象(或容器)的高度。 当设置了top和height值时,忽略此属性值; 当未设置top值时,可通过bottom属性值来确定区域的垂直位置; 当未设置height值时,可通过top和bottom属性值来确定区域的高度。
- right: (String
类型
)区域右侧相对于作用对象(或容器)向左的偏移量
可取值:像素值,如"100px";百分比,如"10%",相对于作用对象(或容器)的宽度。 当设置了left和width值时,忽略此属性值; 当未设置left值时,可通过right属性值来确定区域的水平位置; 当未设置width值时,可通过left和right属性值来确定区域的宽度。
TextStyles
文本样式对象
interface Rect { attribute String color; attribute String align; attribute String family; attribute String size; attribute String style; attribute String weight; attribute String fontSrc; attribute String overflow; }
说明:
用于定义文本的显示样式,如字体大小、字体颜色、字体粗细、字体样式、字体名称等信息。
属性:
- color: (String
类型
)字体颜色
可取值: "#RRGGBB"格式字符串,如"#FF0000"表示绘制红色区域; "rgba(R,G,B,A)",其中R/G/B分别代表红色值/绿色值/蓝色值,正整数类型,取值范围为0-255,A为透明度,浮点数类型,取值范围为0-1(0为全透明,1为不透明),如"rgba(255,0,0,0.5)",表示红色半透明。 默认值为"#000000"(黑色)。
- align: (String
类型
)字体水平对齐方式
可取值: "left"-字体在指定的区域中居左对齐; "center"-字体在指定的区域中居中对齐; "right"-字体在指定的区域中居右对齐。 默认值为"center"。
- family: (String
类型
)字体名称
例如"Times New Roman", 如果指定名称的字体不存在,则使用默认字体。
- margin: (String
类型
)字体的边距
用于设置字体在绘制目标区域四个方向(top/right/bottom/left)的边距,可取值:像素值,如"10px";百分比,相对于绘制目标区域,如"5%"; 默认值为"0px"。
- size: (String
类型
)字体大小
可取值:字体高度像素值,数字加"px"格式字符串,如"12px"。 默认值为"16px"。
- style: (String
类型
)字体样式
可取值:"normal" - 正常字体样式;"italic" - 斜体样式。默认值为"normal"。
- weight: (String
类型
)字体粗细
可取值:"normal" - 普通字体;"bold" - 粗字体。默认值为"normal"。
- fontSrc: (String
类型
)字体文件路径
加载字体文件路径。
- overflow: (String
类型
)文本内容超出显示区域时处理方式
可取值: "clip" - 超出显示区域时内容裁剪; "ellipsis" - 超出显示区域时尾部显示省略标记(...)。 默认值为"clip"。
ViewAnimationOptions
View控件动画参数
interface ViewAnimationOptions { attribute String type; attribute Number duration; attribute Number frames; attribute Rect region; }
说明:
指定动画的类型、持续时间等信息。
属性:
- type: (String
类型
)动画类型
可取值:"shrink" - 从上到下分块收缩清除窗口动画。
- duration: (Number
类型
)动画持续时间
单位为毫秒,默认值为200ms。
- frames: (Number
类型
)动画帧数
必须为大于0的整数,默认值为12。
- region: (json
类型
)动画作用区域
支持以下属性: top - 区域距离控件顶部的偏移量,属性值可取像素值(如"100px"),百分比(如"10%",相对于控件的高度),默认值为'0px'; bottom - 区域距离控件底部的偏移量,属性值可取像素值(如"100px"),百分比(如"10%",相对于控件的高度),默认值为'0px'; left - 区域距离控件左侧的偏移量,属性值可取像素值(如"100px"),百分比(如"10%",相对于控件的宽度),默认值为'0px'; right - 区域距离控件右侧的偏移量,属性值可取像素值(如"100px"),百分比(如"10%",相对于控件的宽度),默认值为'0px'。 如“{top:'44px',bottom:'48px'}”。
ViewDrawTagStyles
View控件绘制元素参数
interface ViewDrawTagStyles { attribute String id; attribute String tag; attribute String color; attribute Position position; attribute String src; attribute Position sprite; attribute String text; attribute TextStyles textStyles; }
说明:
指定绘制图片、矩形区域、文本内容等信息。
属性:
- id: (String
类型
)绘制操作标识
可通过view对象的drawBitmap/drawRect/drawText/clearRect方法进行更新。
- tag: (String
类型
)绘制操作类型
可取值: "img" - 绘制图片,与drawBitmap操作一致,此时id、src、position、sprite属性值有效; "rect" - 绘制矩形区域,与drawRect操作一致,此时id、color、position属性值有效; "font" - 绘制文本内容,与drawText操作一致,此时id、position、text、textStyles属性值有效。
- color: (String
类型
)矩形区域颜色
可取值: "#RRGGBB"格式字符串,如红色为"#FF0000"。 "rgba(R,G,B,A)",其中R/G/B分别代表红色值/绿色值/蓝色值,正整数类型,取值范围为0-255,A为透明度,浮点数类型,取值范围为0-1(0为全透明,1为不透明),如"rgba(255,0,0,0.5)",表示红色半透明。 当tag属性值为"rect"时有效,用于指定矩形区域颜色,默认值为"#FFFFFF"(白色)。
- position: (Position
类型
)绘制内容区域
当tag属性值为"img"时,用于指定绘制图片的目标区域; 当tag属性值为"rect"时,用于指定绘制的矩形区域; 当tag属性值为"font"时,用于指定绘制文本的目标区域。 相对于View控件的区域信息,默认值为{top:'0px',left:'0px',width:'100%',height:'100%'}。
- src: (String
类型
)绘制的图片资源
当tag属性值为"img"时有效,可以是图片资源路径(字符串类型)或者图片对象(plus.nativeObj.Bitmap对象)。 src路径支持gif图片,但设置的图片路径文件使用".gif"后缀时则认为是gif图片,如"_www/loading.gif"。
- sprite: (Position
类型
)图片源的绘制区域
当tag属性值为"img"时有效,用于指定图片源的绘制区域,相对于图片的区域信息,默认值为{top:'0px',left:'0px',width:'100%',height:'100%'}。
- text: (String
类型
)绘制的文本内容
当tag属性值为"font"时有效,用于保存绘制的文本内容。
- textStyles: (TextStyles
类型
)绘制文本的样式
当tag属性值为"font"时有效,用于指定绘制文本内容的字体大小、字体颜色、字体类型等信息。
ViewEvents
View控件事件
常量:
- "doubleclick": (String
类型
)双击事件
双击屏幕时触发。 注意:如果将View控件设置为不拦截触屏事件(view.interceptTouchEvent(false))则不会触发此事件。
- "click": (String
类型
)点击事件
当手指点击屏幕时触发。 注意:如果将View控件设置为不拦截触屏事件(view.interceptTouchEvent(false))则不会触发此事件。
- "touchstart": (String
类型
)开始触屏事件
当手指触摸屏幕时候触发。 注意:如果将View控件设置为不拦截触屏事件(view.interceptTouchEvent(false))则不会触发此事件。
- "touchmove": (String
类型
)触摸滑屏事件
当手指在屏幕上滑动的时候连续地触发。 注意:如果将View控件设置为不拦截触屏事件(view.interceptTouchEvent(false))则不会触发此事件。
- "touchend": (String
类型
)结束触屏事件
当手指从屏幕上离开的时候触发。 注意:如果将View控件设置为不拦截触屏事件(view.interceptTouchEvent(false))则不会触发此事件。
ViewStatusbarStyles
JSON对象,View控件的系统状态栏区域样式
说明:
仅在应用设置为沉浸式状态栏样式下有效,非沉浸式状态栏样式下忽略此属性。
属性:
- background: (String
类型
)系统状态栏区域背景颜色
颜色值格式为"#RRGGBB",如"#FF0000"表示为红色背景,默认值为应用manifest.json中plus->statusbar->background属性配置的值。
ViewStyles
View控件样式
interface ViewStyles { attribute String bottom; attribute String top; attribute String left; attribute String width; attribute String height; attribute String backgroundColor; attribute String dock; attribute String position; attribute Number opacity; attribute ViewStatusbarStyles statusbar; }
说明:
包括位置、大小等信息,位置信息相对于父容器控件进行计算。
属性:
- bottom: (String
类型
)View控件垂直向上的偏移量
支持百分比、像素值,默认值无值(根据top和height属性值来自动计算)。 当设置了top和height值时,忽略此属性值; 当未设置height值时,可通过top和bottom属性值来确定View控件的高度。
- top: (String
类型
)View控件左上角的垂直偏移量
可取值:像素值,如"100px";百分比,如"10%",相对于父控件的高度;自动计算,如"auto",根据height值自动计算,相对于父控件垂直居中。
- left: (String
类型
)区域左上角的水平偏移量
可取值:像素值,如"100px";百分比,如"10%",相对于父控件的宽度;自动计算,如"auto",根据width值自动计算,相对于父控件水平居中。
- width: (String
类型
)区域的宽度
可取值:像素值,如"100px";百分比,如"10%",相对于父控件的宽度。
- height: (String
类型
)区域的高度
可取值:像素值,如"100px";百分比,如"10%",相对于父控件的高度。
- backgroundColor: (String
类型
)区域背景颜色
颜色值格式为"#RRGGBB",如"#FF0000"为红色,默认值为透明区域。
- dock: (String
类型
)View控件的停靠方式
仅当View控件添加到Webview窗口对象中并且position属性值设置为"dock"时才生效,此时View控件挤压Webview窗口的大小。 可取值:"top",控件停靠则页面顶部;"bottom",控件停靠在页面底部;"right",控件停靠在页面右侧;"left",控件停靠在页面左侧。
- position: (String
类型
)View控件的排版方式
仅当View控件添加到Webview窗口对象中时才生效。 可取值: "static",View控件在页面中正常定位,如果页面存在滚动条则随窗口内容滚动; "absolute",Veiw控件在页面中绝对定位,如果页面存在滚动条不随窗口内容滚动; "dock",View控件在页面中停靠,停靠的位置由dock属性值决定。 默认值为"absolute"。
- opacity: (Number
类型
)View控件的不透明度
取值范围为0-1,0为全透明,1为不透明,默认值为1,即不透明。
- statusbar: (ViewStatusbarStyles
类型
)View控件的状态栏样式
仅在应用设置为沉浸式状态栏样式下有效,设置此属性后将自动保留系统状态栏区域不被View控件占用(即View控件非沉浸式样式显示)。
BitmapSaveSuccessCallback
图片保存操作成功回调接口
void onSuccess( Event event ){ // Code here var target = event.target; // 保存后的图片url路径,以"file://"开头 var size = event.size; // 保存后图片的大小,单位为字节(Byte) var width = event.width; // 保存后图片的实际宽度,单位为px var height = event.height; // 保存后图片的实际高度,单位为px }
参数:
- event:
(
Event
)
可选 保存后的图片信息
可通过event.target(String类型)获取保存后的图片url路径,以"file://"开头,可直接在html页面中通过src属性引用,如Android平台"file:///storage/sdcard0/Android/data/io.dcloud.HBuilder/.HBuilder/apps/HBuilder/doc/a.jpg",iOS平台"file:///var/mobile/Containers/Data/Application/757966CF-345C-4348-B07F-EEF83CF9A369/Library/Pandora/apps/HBuilder/doc/a.png"; 可通过event.size(Number类型)获取保存后图片的大小,单位为字节(Byte); 可通过event.width(Number类型)获取保存后的图片的实际宽度,单位为px; 可通过event.height(Number类型)获取保存后的图片的实际高度,单位为px。
返回值:
void : 无TouchEventCallback
触屏事件的回调函数
void onEvent(Event e){ // Event handled code. var clientX = e.clientX; var clientY = e.clientY; var pageX = e.pageX; var pageY = e.pageY; var screenX = e.screenX; var screenY = e.screenY; var target = e.target; }
参数:
- event:
(
Event
)
必选 触屏数据
Event对象包含以下属性: target:保存触发此事件的对象; clientX:Number类型,保存触摸目标在View控件中的X坐标; clientY:Number类型,保存触摸目标在View控件中的Y坐标; pageX:Number类型,保存触摸目标在当前页面(运行此脚本的窗口)中的X坐标; pageY:Number类型,保存触摸目标在当前页面(运行此脚本的窗口)中的Y坐标; screenX:Number类型,保存触摸目标在屏幕中的X坐标; screenY:Number类型,保存触摸目标在屏幕中的Y坐标。
返回值:
void : 无NativeObjSuccessCallback
操作成功回调函数接口
void onSuccess(){ // Code here }
参数:
无
返回值:
void : 无NativeObjErrorCallback
操作错误回调函数接口
function void onError( Exception error ) { // Error. var code = error.code; // 错误编码 var message = error.message; // 错误描述信息 }
参数:
- error:
(
Exception
)
必选 用户选择操作失败信息
可通过error.code(Number类型)获取错误编码; 可通过error.message(String类型)获取错误描述信息。