返回介绍

nativeObj

发布于 2021-10-21 18:08:11 字数 128469 浏览 898 评论 0 收藏 0

nativeObj管理系统原生对象。

对象:

回调方法:

权限:

5+功能模块(permissions)


{
// ...
"permissions":{
	// ...
	"NativeObj": {
		"description": "原生对象"
	}
}
}
			

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。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var bitmap1=null,bitmap2=null;
// H5 plus事件处理
function plusReady(){
	bitmap1 = new plus.nativeObj.Bitmap('bmp1');
	bitmap1.load('bmp1.png',function(){
		console.log('bmp1.png load success!');
	},function(e){
		console.log('bmp1.png load failed! '+JSON.stringify(e));
	});
	bitmap2 = new plus.nativeObj.Bitmap('bmp2');
	bitmap2.load('bmp2.png',function(){
		console.log('bmp2.png load success!');
	},function(e){
		console.log('bmp2.png load failed! '+JSON.stringify(e));
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 原生动画
function nativeAnimation(){
	// 开始动画
	var options = {type:'pop-out',duration:1000};
	plus.nativeObj.View.startAnimation(options,{bitmap:bitmap1},{bitmap:bitmap2},function(){
		console.log('plus.nativeObj.View.startAnimation动画结束');
		// 关闭原生动画
		plus.nativeObj.View.clearAnimation();
	});
}
		</script>
	</head>
	<body>
		<button onclick="nativeAnimation()">原生窗口动画</button><br/>
	</body>
</html>
			

uni-app使用plus注意事项

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'}。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var bitmap1=null,bitmap2=null;
// H5 plus事件处理
function plusReady(){
	bitmap1 = new plus.nativeObj.Bitmap('bmp1');
	bitmap1.load('bmp1.png',function(){
		console.log('bmp1.png load success!');
	},function(e){
		console.log('bmp1.png load failed! '+JSON.stringify(e));
	});
	bitmap2 = new plus.nativeObj.Bitmap('bmp2');
	bitmap2.load('bmp2.png',function(){
		console.log('bmp2.png load success!');
	},function(e){
		console.log('bmp2.png load failed! '+JSON.stringify(e));
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 原生动画
function nativeAnimation(){
	// 开始动画
	var view = {bitmap:bitmap1,text:'主窗口',textStyles:{size:'28px',color:'#FF0000'},textRect:{top:'0px',left:'0px',width:'100%',height:'100px'}};
	var other = {bitmap:bitmap1,text:'副窗口',textStyles:{size:'22px',color:'#00FF00'},textRect:{top:'0px',left:'0px',width:'100%',height:'44px'}};
	plus.nativeObj.View.startAnimation( {type:'pop-in'},view,other,function(){
		console.log('plus.nativeObj.View.startAnimation动画结束');
		// 关闭原生动画
		plus.nativeObj.View.clearAnimation();
	});
}
		</script>
	</head>
	<body>
		<button onclick="nativeAnimation()">原生窗口动画</button><br/>
	</body>
</html>
				

uni-app使用plus注意事项

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方法进行销毁。

构造:

属性:

  • id: Bitmap对象的标识

方法:

Bitmap(id, path)

创建Bitmap对象


var bitmap = new plus.nativeObj.Bitmap(id, path);
						

说明:

创建后为空Bitmap对象,需要调用Webview对象的draw方法更新,或者调用load/loadBase64Data方法加载图片。

参数:

  • id: ( String ) 可选 Bitmap图片对象的id

    给图片对象指定id后,可以通过plus.nativeObj.Bitmap.getBitmapById()获取。 如果不设置id则创建匿名图片对象,仅可通过plus.nativeObj.Bitmap.getItems()获取。 可创建多个相同id的图片,此时plus.nativeObj.Bitmap.getBitmapById()获取第一个创建的id图片对象。

  • path: ( String ) 可选 Bitmap对象自动加载图片的地址

    当图片对象未加载到内存或内存被回收(调用recycle方法),此时使用图片对象时自动加载图片的地址。 适用于低内存环境下使用,仅在图片实际使用时才自动加载到内存中,使用后调用recycle方法回收释放内存。 注意:调用load/save方法会更新此地址。

返回值:

Bitmap : Bitmap图片对象

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var wc=null,bitmap=null;
// H5 plus事件处理
function plusReady(){
	wc = plus.webview.currentWebview();
	bitmap = new plus.nativeObj.Bitmap("test");
	// 将webview内容绘制到Bitmap对象中
	wc.draw(bitmap,function(){
		console.log('绘制图片成功');
	},function(e){
		console.log('绘制图片失败:'+JSON.stringify(e));
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
		</script>
	</head>
	<body>
		创建Bitmap对象<br/>
	</body>
</html>
						

uni-app使用plus注意事项

id

Bitmap对象的标识

说明:

String 类型 只读属性

在创建Bitmap对象时设置,如果没有设置标识,此属性值为null。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
	var bitmap = new plus.nativeObj.Bitmap("test");
	// ...
	console.log( bitmap.id ); // 输出"test"
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
		</script>
	</head>
	<body>
		Bitmap对象的标识<br/>
	</body>
</html>
						

uni-app使用plus注意事项

getItems

静态方法,获取所有Bitmap图片对象


						
Array[Bitmap] plus.nativeObj.Bitmap.getItems();
						
						

说明:

获取应用运行期创建的所有Bitmap图片对象,包含所有空Bitmap对象,不包含已经销毁的Bitmap对象。返回的Bitmap对象在数组中按创建的属性排列,及数组中第一个是最先创建的Bitmap对象。

参数:

返回值:

Array[Bitmap] : 应用中创建的所有Bitmap图片对象数组。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
	// 获取所有Bitmap对象
	var bitmaps=plus.nativeObj.Bitmap.getItems();
	for(var i=0;i<bitmaps.length;i++){
		console.log("Bitmap"+i+": "+bitmaps[i].id);
	}
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
		</script>
	</head>
	<body>
		获取所有Bitmap图片对象<br/>
	</body>
</html>
						

uni-app使用plus注意事项

getBitmapById

静态方法,获取指定标识的Bitmap图片对象


Bitmap plus.nativeObj.Bitmap.getBitmapById( id );
						

说明:

在应用中已创建的图片对象中查找指定标识的Bitmap对象并返回。 若存在多个相同标识的Bitmap图片,则返回第一个创建的Bitmap图片。

参数:

  • id: ( String ) 必选 要查找的Bitmap图片标识

返回值:

Bitmap : Bitmap图片对象,若没有查找到指定标识的图片对象则返回null。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
	wc = plus.webview.currentWebview();
	bitmap = new plus.nativeObj.Bitmap("test");
	// 将webview内容绘制到Bitmap对象中
	wc.draw(bitmap,function(){
		console.log('绘制图片成功');
	},function(e){
		console.log('绘制图片失败:'+JSON.stringify(e));
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 查找Bitmap对象
function findBitmap(){
	var bitmap = plus.nativeObj.Bitmap.getBitmapById("test");
	if(bitmap){
		console.log("Success: "+bitmap.id);
	}else{
		console.log("Can't find bitmap");
	}
}
		</script>
	</head>
	<body>
		获取指定标识的Bitmap图片对象<br/>
		<button onclick="findBitmap()">Find</button>
	</body>
</html>
						

uni-app使用plus注意事项

clear

销毁Bitmap图片


						
void bitmap.clear();
						
						

说明:

释放Bitmap图片占用的内存资源,销毁后图片对象将不可使用,其id属性值为undefined,调用其所有方法操作都会失败。

参数:

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var wc=null,bitmap=null;
// H5 plus事件处理
function plusReady(){
	wc = plus.webview.currentWebview();
	bitmap = new plus.nativeObj.Bitmap("test");
	// 将webview内容绘制到Bitmap对象中
	wc.draw(bitmap,function(){
		console.log('绘制图片成功');
	},function(e){
		console.log('绘制图片失败:'+JSON.stringify(e));
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 销毁Bitmap图片
function clearBitmap(){
	bitmap.clear();
}
		</script>
	</head>
	<body>
		销毁Bitmap图片<br/>
		<button onclick="clearBitmap()">Clear</button>
	</body>
</html>
						

uni-app使用plus注意事项

load

加载Bitmap图片


						
void bitmap.load( path, successCallback, errorCallback );
						
						

说明:

从指定的路径(仅支持本地文件系统)中加载图片,此操作将覆盖之前的图片内容, 如果加载图片失败则保留之前的图片内容。

参数:

  • path: ( String ) 必选 要加载的图片路径

    支持以下图片路径: 相对路径 - 相对于当前页面的host位置,如"a.jpg",注意当前页面为网络地址则不支持; 绝对路径 - 系统绝对路径,如Android平台"/sdcard/logo.png",此类路径通常通过其它5+ API获取的; 扩展相对路径URL(RelativeURL) - 以"_"开头的相对路径,如"_www/a.jpg"; 本地路径URL - 以“file://”开头,后面跟随系统绝对路径。

  • successCallback: ( NativeObjSuccessCallback ) 必选 加载图片操作成功回调

    加载图片操作成功时调用。

  • errorCallback: ( NativeObjErrorCallback ) 必选 加载图片操作失败回调

    加载图片操作失败时调用,并返回失败信息。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
	var bitmap = new plus.nativeObj.Bitmap("test");
	// 从本地加载Bitmap图片
	bitmap.load('icon.png',function(){
		console.log('加载图片成功');
	},function(e){
		console.log('加载图片失败:'+JSON.stringify(e));
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
		</script>
	</head>
	<body>
		加载Bitmap图片<br/>
	</body>
</html>
						

uni-app使用plus注意事项

loadBase64Data

加载Base64编码格式图片到Bitmap对象


						
void bitmap.loadBase64Data( data, successCallback, errorCallback );
						
						

说明:

从Base64编码格式图片数据中加载图片,此操作将覆盖之前的图片内容, 如果加载图片失败则保留之前的图片内容。

参数:

  • data: ( String ) 必选 要加载图片的Base64编码格式数据

    如果数据格式不正确或者不是有效的图片数据则返回失败。

  • successCallback: ( NativeObjSuccessCallback ) 必选 加载图片操作成功回调

    加载图片操作成功时调用。

  • errorCallback: ( NativeObjErrorCallback ) 必选 加载图片操作失败回调

    加载图片操作失败时调用,并返回失败信息。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var bitmap=null;
// H5 plus事件处理
function plusReady(){
	bitmap = new plus.nativeObj.Bitmap("test");
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
		</script>
	</head>
	<body>
		加载Base64编码格式图片到Bitmap对象<br/>
		<button onclick="loadDataImage()">LoadBase64Data</button><br/>
		<canvas id="cimg"></canvas><br/>
	</body>
	<script type="text/javascript">
// 获取图片的base64格式数据
var data = null;
var img = new Image();
img.onload = function(){
	var cx = cimg.getContext('2d');
	cimg.width = img.width;
	cimg.height = img.height;
	cx.drawImage( img, 0, 0 );
	data = cimg.toDataURL();
}
img.src = 'logo.png';
// 加载Base64编码格式图片到Bitmap对象
function loadDataImage(){
	bitmap.loadBase64Data( data, function(){
		console.log("加载Base64图片数据成功");
	}, function(){
		console.log('加载Base64图片数据失败:'+JSON.stringify(e));
	} );
}
	</script>
</html>
						

uni-app使用plus注意事项

recycle

回收Bitmap图片内存


						
void bitmap.recycle();
						
						

说明:

释放Bitmap图片占用的内存资源,但不销毁图片对象,依然可以继续使用图片对象。 当图片对象再次被使用时会自动从设置的路径(构造函数或load/save方法设置)加载到内存中。

参数:

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var wc=null,bitmap=null;
// H5 plus事件处理
function plusReady(){
	wc = plus.webview.currentWebview();
	bitmap = new plus.nativeObj.Bitmap("test","_www/bimap/capture.png");
	// 将webview内容绘制到Bitmap对象中
	wc.draw(bitmap,function(){
		console.log('绘制图片成功');
		bitmap.save("_www/bimap/capture.png");
	},function(e){
		console.log('绘制图片失败:'+JSON.stringify(e));
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 回收Bitmap图片
function recycleBitmap(){
	bitmap.recycle();
}
		</script>
	</head>
	<body>
		销毁Bitmap图片<br/>
		<button onclick="clearBitmap()">Recycle</button>
	</body>
</html>
						

uni-app使用plus注意事项

save

保存图片


						
void bitmap.save( path, options, successCallback, errorCallback );
						
						

说明:

将图片保存到指定的路径(仅支持本地文件系统),如果图片为空或者指定的路径文件已经存在则返回失败。

参数:

  • path: ( String ) 必选 要保存的图片路径

    支持以下图片路径: 绝对路径 - 系统绝对路径,如Android平台"/storage/sdcard0/Android/data/io.dcloud.HBuilder/.HBuilder/apps/HBuilder/doc/a.jpg",iOS平台"/var/mobile/Containers/Data/Application/757966CF-345C-4348-B07F-EEF83CF9A369/Library/Pandora/apps/HBuilder/doc/a.png"; 相对路径URL(RelativeURL) - 以"_"开头的相对路径,如"_doc/b.jpg"、"_documents/c.jpg"、"_downloads/d.jpg"; 本地路径URL - 以“file://”开头,后面跟随系统绝对路径。 如果指定的路径无效,或者不可访问则返回失败。

  • options: ( BitmapSaveOptions ) 必选 保存图片的属性

    可设置保存图片的格式,压缩质量等参数。

  • successCallback: ( BitmapSaveSuccessCallback ) 必选 保存图片操作成功回调

    加载图片操作成功时调用。

  • errorCallback: ( NativeObjErrorCallback ) 必选 保存图片操作失败回调

    加载图片操作失败时调用,并返回失败信息。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var wc=null,bitmap=null;
// H5 plus事件处理
function plusReady(){
	wc = plus.webview.currentWebview();
	bitmap = new plus.nativeObj.Bitmap("test");
	// 将webview内容绘制到Bitmap对象中
	wc.draw(bitmap,function(){
		console.log('绘制图片成功');
	},function(e){
		console.log('绘制图片失败:'+JSON.stringify(e));
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 保存图片
function saveBitmap(){
	bitmap.save( "_doc/a.jpg"
	,{}
	,function(i){
		console.log('保存图片成功:'+JSON.stringify(i));
	}
	,function(e){
		console.log('保存图片失败:'+JSON.stringify(e));
	});
}
		</script>
	</head>
	<body>
		保存图片<br/>
		<button onclick="saveBitmap()">Save</button>
	</body>
</html>
						

uni-app使用plus注意事项

toBase64Data

获取图片的Base64编码数据


						
String bitmap.toBase64Data();
						
						

说明:

读取图片的数据内容,并转换为Base64编码格式字符串。

参数:

返回值:

String : 图片的Base64编码数据,如果图片为空则返回null。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var bitmap = null,wi=null;
// H5 plus事件处理
function plusReady(){
	// 获取首页Webview窗口
	wi = plus.webview.getLaunchWebview();
	// 创建Bitmap对象
	bitmap = new plus.nativeObj.Bitmap("test");
	// 将首页Webview窗口截图保存到Bitmap中
	wi.draw( bitmap, function(){
		console.log("截图成功");
	}, function(e){
		console.log("截图失败:"+JSON.stringify(e));
	} );
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 获取图片的Base64编码数据
function base64Image(){
	var img=document.getElementById("img");
	img.src = bitmap.toBase64Data();
}
		</script>
	</head>
	<body>
		获取图片的Base64编码数据<br/>
		<button onclick="base64Image()">Base64Data</button><br/>
		<img id="img"></img>
	</body>
</html>
						

uni-app使用plus注意事项

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%'}。

ImageSlider

原生图片轮播控件对象


interface ImageSlider extends View {
	function void addImages(images);
	function Number currentImageIndex();
	function void setImages(images);
}
				

说明:

原生图片轮播控件对象从原生View控件(plus.nativeObj.View)继承而来,用于绘制图片轮播内容。

构造:

方法:

ImageSlider(id, styles, tags)

创建图片轮播控件对象


var view = new plus.nativeObj.ImageSlider(id, styles, tags);
						

说明:

与原生View控件一样,创建后需要调用show方法显示,或者添加到Webview中显示。

参数:

  • id: ( String ) 必选 图片轮播控件对象的id

    与原生View控件的id作用一样。

  • styles: ( ImageSliderStyles ) 可选 图片轮播控件的样式

    设置控件的位置、大小及显示的图片等信息。

  • tags: ( Array[ViewDrawTagStyles] ) 可选 图片轮播控件上需要额外绘制的内容

    与原生View控件一样,额外绘制自定义内容。

返回值:

ImageSlider : 原生图片轮播控件

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var view=null;
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener('plusready', plusReady, false);
}
// 创建原生View控件
function createView(){
	view = new plus.nativeObj.ImageSlider('test',
	{top:'100px',left:'0px',height:'200px',width:'100%',position:'absolute',images:[{src:'1.png'},{src:'2.png'},{src:'3.png'}]});
	plus.webview.currentWebview().append(view);
}
		</script>
	</head>
	<body>
		创建图片轮播控件,添加到Webview窗口显示<br/>
		<button onclick="createView()">创建图片轮播控件</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

addImages

添加图片轮播控件的图片


void slider.addImages(images);
						

说明:

动态添加图片轮播控件显示的图片。

参数:

  • images: ( Array[ImageSliderImageStyles] ) 必选 添加的轮播图片数组

    至少必须添加一张图片的地址信息,否则无法添加。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建原生图片轮播控件
var view=null;
function createView(){
	view = new plus.nativeObj.ImageSlider('test',{top:'200px',left:'0px',height:'50%',width:'100%',images:[{src:'1.png'},{src:'2.png'},{src:'3.png'}]});
	// 直接显示
	view.show();
}
// 添加原生图片轮播控件上显示的图片
function updateView(){
	view.addImages([{src:'4.png'},{src:'5.png'}]);
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建图片轮播对象</button><br/>
		<button onclick="updateView()">添加图片</button>
	</body>
</html>
						

uni-app使用plus注意事项

currentImageIndex

获取当前图片轮播控件显示的图片索引值


Number slider.currentImageIndex();
						

说明:

索引值从0开始,即0表示图片轮播控件当前显示第一张图片。

参数:

返回值:

Number : 当前图片轮播控件显示的图片索引值

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建原生图片轮播控件
var view=null;
var images=[{src:'1.png'},{src:'2.png'},{src:'3.png'}];
function createView(){
	view = new plus.nativeObj.ImageSlider('test',{top:'200px',left:'0px',height:'50%',width:'100%',images:images});
	// 直接显示
	view.show();
}
// 获取当前显示的图片
function currentImage(){
	var index = view.currentImageIndex();
	var currentImage = images[index];
	console.log('Current image: '+currentImage.src);
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建图片轮播对象</button><br/>
		<button onclick="currentImage()">获取当前显示的图片</button>
	</body>
</html>
						

uni-app使用plus注意事项

setImages

设置图片轮播控件的图片


void slider.setImages(images);
						

说明:

动态更新图片轮播控件显示的图片。

参数:

  • images: ( Array[ImageSliderImageStyles] ) 必选 更新后的轮播图片数组

    至少必须设置一张图片的地址信息,否则可能导致图片轮播控件显示不正常。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建原生图片轮播控件
var view=null;
function createView(){
	view = new plus.nativeObj.ImageSlider('test',{top:'200px',left:'0px',height:'50%',width:'100%',images:[{src:'1.png'},{src:'2.png'},{src:'3.png'}]});
	// 直接显示
	view.show();
}
// 更新原生图片轮播控件
function updateView(){
	view.setImages([{src:'4.png'},{src:'5.png'}]);
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建图片轮播对象</button><br/>
		<button onclick="updateView()">更新图片轮播对象</button>
	</body>
</html>
						

uni-app使用plus注意事项

ImageSliderStyles

图片轮播控件样式


interface ImageSliderStyles extends ViewStyles {
	attribute Boolean autoplay;
	attribute Array<ImageSliderImageStyles> images;
	attribute Boolean loop;
	attribute Boolean fullscreen;
}				

说明:

从ViewStyles继承而来,扩展支持轮播图片等配置。

属性:

  • autoplay: (Boolean 类型 )是否自动播放

    可取值: "true" - 自动播放; "false" - 不自动播放。 默认值为"false"。

  • fullscreen: (Boolean 类型 )是否可全屏显示

    可取值: "true" - 表示可全屏显示,用户点击轮播图片时全屏显示; "false" - 表示不可全屏显示,用户点击轮播图片时无响应。 默认值为"true"。

  • loop: (Boolean 类型 )是否可循环轮播

    可取值: "true" - 支持循环轮播; "false" - 不支持循环轮播。 默认值为"false"。

  • images: (Array[ImageSliderImageStyles] 类型 )轮播的图片

    至少必须设置一张图片的地址信息,否则可能导致图片轮播控件显示不正常。

  • interval: (Number 类型 )自动播放切换时间

    当autoplay属性值为true时生效,单位为毫秒。默认值为3000(3秒)。

ImageSliderImageStyles

图片轮播控件中图片项配置参数

说明:

用于指定图片地址等信息。

属性:

  • src: (String 类型 )图片地址

    支持本地地址(相对地址、绝对路径、RelativeURL、本地路径URL); 也支持网络地址(http://或https://)。

  • align: (String 类型 )图片水平对齐方式

    仅在图片显示的宽度与图片轮播控件宽度不一致时有效,可取值: "left" - 图片在轮播控件中水平居左对齐; "center" - 图片在轮播控件中水平居中对齐; "right" - 图片在轮播控件中水平居右对齐。 默认值为"center"。

  • height: (String 类型 )图片显示的高度

    可取值: 像素值,如"100px"; 百分比,如"10%",现对于图片轮播控件的高度; 自动计算"auto",如果指定图片宽度(width),则按图片实际大小等比缩放图片高度值,如果没有指定宽度(width值为"auto")则自动缩放图片至可完整显示。

  • width: (String 类型 )图片显示的宽度

    可取值: 像素值,如"100px"; 百分比,如"10%",相对于图片轮播控件的宽度; 自动计算"auto",如果指定图片高度(height),则按图片实际大小等比缩放图片宽度值,如果没有指定高度(height值为"auto")则自动缩放图片至可完整显示。 默认值为"auto"。

  • verticalAlign: (String 类型 )图片垂直对齐方式

    仅在图片显示的高度与图片轮播控件宽度不一致时有效,可取值: "top" - 图片在轮播控件中垂直居顶对齐; "middle" - 图片在轮播控件中垂直居中对齐; "bottom" - 图片在轮播控件中垂直居底对齐。 默认值为"middle"。

InputStyles

输入框样式


interface InputStyles{
	attribute String type;
	attribute String placeholder;
	attribute String fontSize;
	attribute String borderWidth;
	attribute String borderColor;
	attribute String borderRadius;
	attribute function onComplete;
	attribute function onFocus;
	attribute function onBlur;
}
				

说明:

用于定义输入框的显示样式,如字体大小,提示内容等信息。 输入文本内容在指定区域水平居左,垂直居中显示。

属性:

  • type: (String 类型 )输入框类型

    可取值: "email" - 邮箱地址输入框; "number" - 数字输入框; "search" - 搜索文本输入框; "tel" - 电话号码输入框; "text" - 普通文本输入框; "url" - URL地址输入框。 默认为text(即普通文本输入框)。

  • placeholder: (String 类型 )输入框的提示文本

    当用户未输入内容时显示在编辑框中(灰色文字)。

  • fontSize: (String 类型 )输入框的字体大小

    可取值:字体高度像素值,数字加"px"格式字符串,如"12px"。 默认值为"16px"。

  • borderColor: (String 类型 )输入框的边框颜色

    可取值: "#RRGGBB"格式字符串,如"#FF0000"表示红色边框。默认值为"#000000"(黑色)。

  • borderRadius: (String 类型 )输入框边框圆角半径

    可取值:圆角半径像素值,数字加"px"格式字符串,如"6px"。 默认值为"0px"(边框无圆角)。

  • borderWidth: (String 类型 )输入框的边框宽度

    可取值:像素值,数字加"px"格式字符串,如"2px"。 默认值为"1px"。

  • onComplete: (InputCompleteCallback 类型 )输入框完成输入事件

    弹出软键盘完成输入后,点击软键盘上的“完成”、“前往”按钮时触发。

  • onFocus: (InputEventCallback 类型 )输入框获取焦点事件

    当编辑框获取焦点时触发。

  • onBlur: (InputEventCallback 类型 )输入框失去焦点事件

    当编辑框失去焦点时触发。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var view=null;
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建带编辑框的原生View控件
function createView(){
	view = new plus.nativeObj.View('test',
	{top:'0px',left:'0px',height:'44px',width:'100%'});
	view.draw([
		{tag:'input',id:'input',inputStyles:{fonstSize:'16px'},position:{top:'0px',left:'0px',width:'100%',height:'20px'}},
		{tag:'font',id:'font',text:'原生控件',textStyles:{size:'18px'}}
		]);
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建带编辑框的原生View控件</button><br/>
	</body>
</html>
			

uni-app使用plus注意事项

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%",相对于作用对象的高度。 内容自适应,如"wrap_content",根据内容计算高度(如调用drawText绘制文本时支持)。

RectStyles

绘制区域样式对象


interface RectStyles {
	attribute String color;
	attribute String radius;
	attribute String borderColor;
	attribute String borderWidth;
}				

说明:

用于定义矩形区域的显示样式,如空心/实心样式、圆角等信息。

属性:

  • 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)",表示红色半透明。 默认值为"#FFFFFF"(白色)。

  • radius: (String 类型 )矩形区域的圆角半径

    可取值:圆角半径像素值,数字加"px"格式字符串,如"6px"。 默认值为"0px"(矩形无圆角)。

  • borderColor: (String 类型 )矩形边框颜色

    绘制矩形边框的颜色,可取值: "#RRGGBB"格式字符串,如"#FF0000"表示绘制红色区域; "rgba(R,G,B,A)",其中R/G/B分别代表红色值/绿色值/蓝色值,正整数类型,取值范围为0-255,A为透明度,浮点数类型,取值范围为0-1(0为全透明,1为不透明),如"rgba(255,0,0,0.5)",表示红色半透明。 默认值为矩形填充区域颜色(color属性值)。

  • borderWidth: (String 类型 )矩形边框宽度

    可取值:像素值,数字加"px"格式字符串,如"2px"。 默认值为"0px"(无边框)。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener('plusready', plusReady, false);
}
// 创建原生View控件
function createView(){
	var view = new plus.nativeObj.View('test', {top:'200px',left:'0px',height:'44px',width:'100%'});
	// 绘制空心圆角矩形
	view.drawRect({color:'rgba(0,0,0,0)',borderWidth:'2px',radius:'5px'},
		{top:'0px',left:'0px',width:'100%',height:'100%'});
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
				

uni-app使用plus注意事项

RichTextStyles

富文本样式


interface RichTextStyles{
	attribute String align;
	attribute String family;
	attribute String fontSrc;
	attribute Function onClick;
}
				

说明:

用于定义富文本使用的默认使用的字体名称、字体文件路径等信息。

属性:

  • align: (String 类型 )富文本内容的水平对齐方式

    对整体内容有效,无法单独控制每行的内容。 可取值: "left"-字体在指定的区域中水平居左对齐; "center"-字体在指定的区域中水平居中对齐; "right"-字体在指定的区域中水平居右对齐。 默认值为"left"。

  • family: (String 类型 )富文本默认使用的字体名称

    例如"Times New Roman", 如果指定名称的字体不存在,则使用系统默认字体。

  • fontSrc: (String 类型 )富文本默认使用的字体文件路径

    加载字体文件路径,必须为本地路径,如果指定的文件路径无效,则使用系统默认字体。

  • onClick: (RichTextClickedCallback 类型 )点击事件回调函数

    如果设置此属性,则表示拦截所有RichText上的点击事件(不透传事件)。 如果没有设置此属性,则仅拦截操作包含onclick属性的a/img标签的点击事件。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener('plusready', plusReady, false);
}
// 创建原生View控件
function createView(){
	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
	var richtext = '<font color="#FF0000" style="font-size:10px;">文本</font><br/><a onclick="console.log(\'clicked a\')" style="font-size:12px;">链接</a><br/><img src="./t.png" width="20px" height="20px"></img>';
	// 绘制文本
	view.drawRichText(richtext, {top:'0px',left:'0px',width:'100%',height:'wrap_content'}, {family:'Times New Roman',fontSrc:'_www/font.ttf'});
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
				

uni-app使用plus注意事项

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属性值来确定区域的宽度。

示例:


<!DOCTYPE html>
<html>
	<head>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<meta name="HandheldFriendly" content="true"/>
		<meta name="MobileOptimized" content="320"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var wc=null;
var bitmap=null; // 返回图标
// H5 plus事件处理
function plusReady(){
	wc=plus.webview.currentWebview();
	plus.key.addEventListener('backbutton', function(){
		nv&&!bChild?(nv.close(),nv=null):plus.runtime.quit();
	}, false);
	
	var bdata = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABYCAYAAAADWlKCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAKwwAACsMBNCkkqwAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOS8xMi8xM5w+I3MAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzVxteM2AAACcklEQVR4nO3a0XESURiG4TeO99iBWoGZ+RvADtKBpAPtwBLsANJBrEAs4MyYDmIHSQXkgk0mMLK7ILt8/+F778ici394OGfDsher1Qqn05tTD+A2M4hYBhHLIGIZRCyDiGUQsQwilkHEMohYBhHLIGIZRCyDiGUQsQwilkHEMohYBhHLIGIZRCyDiGUQsQwilkHEMohYb089wNCVUq6Ay+blfUQsTjhOZxc1P9tbSlkAX7b+/C0ifpxgnF5Ve2TtwAD4OvIoe1UlSAsGwPsRR9m76kA6MAD+jjTKQVUF0gMD4HaEUQ6umot6T4ybiJgNP83hVbFDasGACnZIT4yfEXE1wjj/Xeod0hPjDpgNPsyRSguyB8Y0Ih6Gn+g4pQSpFQMSgtSMAclAaseARCDngAFJQM4FAxKAnBMGiH8xLKVMgV89ln6MiPthpxkn6R0SEUvgusfSZSnlsnuZftI75LlSygyYdyx7ZH1s/Rl+ouFKAQIvx9ctMGlZlh4lDQhAcywtqRhF+hqyXfMmT1m/6buasL6mzMaY6dilAoENlLuWZRNgnhEl1ZH1ulLKO9bH16eOpdfqz2K9Lt0Oea75EjilfadAsp2SFgQ2UH53LJ2XUr4PPtARSntkbVfL7+rVgEBvlM/NHQDJUh9Z2zWf/puOZbPhJzm8qkDgBaXt/teHcSY5rOpAAJp/c/vclJSrShDYifKI+NPvVV3U/1VzU3LavFyo/25SPUi2qj2ysmYQsQwilkHEMohYBhHLIGIZRCyDiGUQsQwilkHEMohYBhHLIGIZRCyDiGUQsQwilkHEMohYBhHLIGIZRCyDiGUQsZ4Ak9fPFwUy/HsAAAAASUVORK5CYII=';
	bitmap = new plus.nativeObj.Bitmap('back');
	bitmap.loadBase64Data(bdata, function(){
		bitmap.isLoadSuccess = true;
		console.log('Back bitmap load success');
	}, function(e){
		console.log('Back bitmap load failed: '+JSON.stringify(e));
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener('plusready',plusReady,false);
}
var nv=null;
// 创建原生View控件
function creatView(){
	nv=nv||new plus.nativeObj.View('test', {top:'100px',bottom:'0px'}, [
		{id:'background', tag:'rect', position:{}, color:'#FFFFFF'},
		{id:'rect1', tag:'rect', position:{left:'0px',right:'100px',height:'100px'}, color:'#FF0000'},
		{id:'back1', tag:'img', src:bitmap, position:{right:'0px',width:'50px',height:'44px'}},
		{id:'font1', tag:'font', position:{left:'0px',right:'100px',height:'100px'}, text:'初始文字', textStyles:{color:'#00FF00',size:'50px'}}
	]);
	
	// 绘制底部区域
	nv.drawRect('#FF0000', {left:'100px',right:'100px',bottom:'0px',height:'100px'}, 'rect2');
	nv.drawBitmap(bitmap, {}, {bottom:'0px',width:'50px',height:'44px'}, 'back2');
	nv.drawText('底部文本内容', {bottom:'0px',height:'100px'}, {color:'#00FF00'}, 'font2');
	
	nv.show();
}
		</script>
	</head>
	<body style="background:#0000FF;">
		使用bottom属性定位绘制内容<br/>
		<button onclick="creatView()">显示</button>
	</body>
</html>
				

uni-app使用plus注意事项

TextStyles

绘制文本样式对象


interface TextStyles {
	attribute String align;
	attribute String color;
	attribute String family;
	attribute String size;
	attribute String style;
	attribute String weight;
	attribute String fontSrc;
	attribute String overflow;
}				

说明:

用于定义文本的显示样式,如字体大小、字体颜色、字体粗细、字体样式、字体名称等信息。

属性:

  • align: (String 类型 )水平对齐方式

    可取值: "left"-字体在指定的区域中水平居左对齐; "center"-字体在指定的区域中水平居中对齐; "right"-字体在指定的区域中水平居右对齐。 默认值为"center"。

    
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<meta charset="utf-8"/>
    		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    		<title>NativeObj Example</title>
    		<script type="text/javascript">
    // H5 plus事件处理
    function plusReady(){
    }
    if(window.plus){
    	plusReady();
    }else{
    	document.addEventListener("plusready",plusReady,false);
    }
    // 创建原生View控件
    function createView(){
    	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
    	// 绘制文本
    	view.drawText('原生绘制的文本内容', {top:'0px',left:'0px',width:'100%',height:'100%'}, {align:'left'});
    	view.show();
    }
    		</script>
    	</head>
    	<body>
    		<button onclick="createView()">创建View对象</button><br/>
    	</body>
    </html>
    						
  • 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"(黑色)。

    
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<meta charset="utf-8"/>
    		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    		<title>NativeObj Example</title>
    		<script type="text/javascript">
    // H5 plus事件处理
    function plusReady(){
    }
    if(window.plus){
    	plusReady();
    }else{
    	document.addEventListener("plusready",plusReady,false);
    }
    // 创建原生View控件
    function createView(){
    	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
    	// 绘制文本
    	view.drawText('原生绘制的文本内容', {top:'0px',left:'0px',width:'100%',height:'100%'}, {color:'#FF0000'});
    	view.show();
    }
    		</script>
    	</head>
    	<body>
    		<button onclick="createView()">创建View对象</button><br/>
    	</body>
    </html>
    						
  • decoration: (Boolean 类型 )文本装饰

    可取值: "none" - 无装饰效果; "underline" - 文本带下划线效果; "line-through" - 文本带贯穿线(删除线)效果。 默认值为"none"。

    
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<meta charset="utf-8"/>
    		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    		<title>NativeObj Example</title>
    		<script type="text/javascript">
    // H5 plus事件处理
    function plusReady(){
    }
    if(window.plus){
    	plusReady();
    }else{
    	document.addEventListener("plusready",plusReady,false);
    }
    // 创建原生View控件
    function createView(){
    	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
    	// 绘制带删除线文本
    	view.drawText('原生绘制的文本内容', {top:'0px',left:'0px',width:'100%',height:'100%'}, {decoration:'line-through'});
    	view.show();
    }
    		</script>
    	</head>
    	<body>
    		<button onclick="createView()">创建View对象</button><br/>
    	</body>
    </html>
    						
  • family: (String 类型 )字体名称

    例如"Times New Roman", 如果指定名称的字体不存在,则使用默认字体。

    
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<meta charset="utf-8"/>
    		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    		<title>NativeObj Example</title>
    		<script type="text/javascript">
    // H5 plus事件处理
    function plusReady(){
    }
    if(window.plus){
    	plusReady();
    }else{
    	document.addEventListener("plusready",plusReady,false);
    }
    // 创建原生View控件
    function createView(){
    	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
    	// 绘制文本
    	view.drawText('原生绘制的文本内容', {top:'0px',left:'0px',width:'100%',height:'100%'}, {family:'Times New Roman'});
    	view.show();
    }
    		</script>
    	</head>
    	<body>
    		<button onclick="createView()">创建View对象</button><br/>
    	</body>
    </html>
    						
  • fontSrc: (String 类型 )字体文件路径

    加载字体文件路径。

    
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<meta charset="utf-8"/>
    		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    		<title>NativeObj Example</title>
    		<script type="text/javascript">
    // H5 plus事件处理
    function plusReady(){
    }
    if(window.plus){
    	plusReady();
    }else{
    	document.addEventListener("plusready",plusReady,false);
    }
    // 创建原生View控件
    function createView(){
    	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
    	// 绘制文本
    	view.drawText('原生绘制的文本内容', {top:'0px',left:'0px',width:'100%',height:'100%'}, {family:'Times New Roman',fontSrc:'_www/font.ttf'});
    	view.show();
    }
    		</script>
    	</head>
    	<body>
    		<button onclick="createView()">创建View对象</button><br/>
    	</body>
    </html>
    						
  • lineSpacing: (String 类型 )文本的行间距

    可取值: 像素值,如"100px";百分比,如"10%",相对于字体的高度(size属性); 默认值为"20%"。

  • margin: (String 类型 )字体的边距

    用于设置字体在绘制目标区域四个方向(top/right/bottom/left)的边距,可取值:像素值,如"10px";百分比,相对于绘制目标区域,如"5%"; 默认值为"0px"。

    
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<meta charset="utf-8"/>
    		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    		<title>NativeObj Example</title>
    		<script type="text/javascript">
    // H5 plus事件处理
    function plusReady(){
    }
    if(window.plus){
    	plusReady();
    }else{
    	document.addEventListener("plusready",plusReady,false);
    }
    // 创建原生View控件
    function createView(){
    	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
    	// 绘制文本
    	view.drawText('原生绘制的文本内容', {top:'0px',left:'0px',width:'100%',height:'100%'}, {align:'right',margin:'10px'});
    	view.show();
    }
    		</script>
    	</head>
    	<body>
    		<button onclick="createView()">创建View对象</button><br/>
    	</body>
    </html>
    						
  • overflow: (String 类型 )文本内容超出显示区域时处理方式

    可取值: "clip" - 超出显示区域时内容裁剪; "ellipsis" - 超出显示区域时尾部显示省略标记(...)。 默认值为"clip"。

    
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<meta charset="utf-8"/>
    		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    		<title>NativeObj Example</title>
    		<script type="text/javascript">
    // H5 plus事件处理
    function plusReady(){
    }
    if(window.plus){
    	plusReady();
    }else{
    	document.addEventListener("plusready",plusReady,false);
    }
    // 创建原生View控件
    function createView(){
    	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
    	// 绘制文本
    	view.drawText('原生绘制的长字符串文本内容', {top:'0px',left:'0px',width:'50%',height:'100%'}, {overflow:'ellipsis'});
    	view.show();
    }
    		</script>
    	</head>
    	<body>
    		<button onclick="createView()">创建View对象</button><br/>
    	</body>
    </html>
    						
  • size: (String 类型 )字体大小

    可取值:字体高度像素值,数字加"px"格式字符串,如"12px"。 默认值为"16px"。

    
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<meta charset="utf-8"/>
    		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    		<title>NativeObj Example</title>
    		<script type="text/javascript">
    // H5 plus事件处理
    function plusReady(){
    }
    if(window.plus){
    	plusReady();
    }else{
    	document.addEventListener("plusready",plusReady,false);
    }
    // 创建原生View控件
    function createView(){
    	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
    	// 绘制文本
    	view.drawText('原生绘制的文本内容', {top:'0px',left:'0px',width:'100%',height:'100%'}, {size:'44px'});
    	view.show();
    }
    		</script>
    	</head>
    	<body>
    		<button onclick="createView()">创建View对象</button><br/>
    	</body>
    </html>
    						
  • style: (String 类型 )字体样式

    可取值:"normal" - 正常字体样式;"italic" - 斜体样式。默认值为"normal"。

    
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<meta charset="utf-8"/>
    		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    		<title>NativeObj Example</title>
    		<script type="text/javascript">
    // H5 plus事件处理
    function plusReady(){
    }
    if(window.plus){
    	plusReady();
    }else{
    	document.addEventListener("plusready",plusReady,false);
    }
    // 创建原生View控件
    function createView(){
    	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
    	// 绘制文本
    	view.drawText('原生绘制的文本内容', {top:'0px',left:'0px',width:'100%',height:'100%'}, {style:'italic'});
    	view.show();
    }
    		</script>
    	</head>
    	<body>
    		<button onclick="createView()">创建View对象</button><br/>
    	</body>
    </html>
    						
  • verticalAlign: (String 类型 )垂直对齐方式

    文本内容在指定绘制区域中的垂直对齐方式,可取值: "top" - 垂直居顶对齐; "middle" - 垂直居中对齐; "bottom" - 垂直居底对齐。 默认值为"middle"。

  • weight: (String 类型 )字体粗细

    可取值:"normal" - 普通字体;"bold" - 粗字体。默认值为"normal"。

    
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<meta charset="utf-8"/>
    		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    		<title>NativeObj Example</title>
    		<script type="text/javascript">
    // H5 plus事件处理
    function plusReady(){
    }
    if(window.plus){
    	plusReady();
    }else{
    	document.addEventListener("plusready",plusReady,false);
    }
    // 创建原生View控件
    function createView(){
    	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
    	// 绘制文本
    	view.drawText('原生绘制的文本内容', {top:'0px',left:'0px',width:'100%',height:'100%'}, {weight:'bold'});
    	view.show();
    }
    		</script>
    	</head>
    	<body>
    		<button onclick="createView()">创建View对象</button><br/>
    	</body>
    </html>
    						
  • whiteSpace: (String 类型 )文本换行模式

    可取值: "nowrap" - 不换行,将所有文本在一行中绘制,忽略换行符("\n"); "normal" - 自动换行,当指定的宽度无法绘制所有文本时自动换行绘制,碰到'\n'字符时强制换行。 默认值为"nowrap"。

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 drawRichText(text, position, styles, id);
	function void drawInput(position, styles, id);
	function Boolean getInputFocusById(id);
	function String getInputValueById(id);
	function void reset();
	function void restore();
	function void show();
	function void setInputFocusById(id, focusable);
	function void setStyle(styles);
	function void setTouchEventRect(rect);
	function void hide();
	function void interceptTouchEvent(intercept);
	function Boolean isVisible();
}
				

说明:

原生控件对象可用于在屏幕上绘制图片或文本内容,当控件不再使用时需要调用close方法销毁控件。 NView不支持zindex,后显示的覆盖先显示的; 调用Webview窗口对象的append方法添加到Webview中,显示在父窗口所有子Webview的上面;不添加到Webview窗口对象,显示在所有Webview的上面。

构造:

属性:

  • id: View对象的标识

方法:

View(id, styles, tags)

创建View对象


var view = new plus.nativeObj.View(id, styles, tags);
						

说明:

创建后View对象后,需要调用View对象的show方法显示。 默认显示为无内容样式(背景透明),需要调用drawBitmap/drawText方法更新控件显示的内容。

参数:

  • id: ( String ) 必选 View控件对象的id

    给View控件对象指定id后,可以通过plus.nativeObj.View.getViewById()获取。 如果不设置id则创建匿名View控件对象,此时必须通过返回的对象进行操作。 可创建多个相同id的View控件,此时plus.nativeObj.View.getViewById()获取第一个创建的id控件对象。

  • styles: ( ViewStyles ) 可选 View控件的样式

    设置控件的位置、大小等信息。

  • tags: ( Array[ViewDrawTagStyles] ) 可选 View控件初始绘制内容

    可设置绘制图片、矩形区域、文本等内容。

返回值:

View : 原生View控件

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var view=null;
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建原生View控件
function createView(){
	view = new plus.nativeObj.View('test',
	{top:'0px',left:'0px',height:'44px',width:'100%'},
	[{tag:'img',id:'img',src:'nbg.png',position:{top:'0px',left:'0px',width:'100%',height:'100%'}},
	{tag:'rect',id:'rect',color:'#FF0000',position:{top:'0px',left:'0px',width:'100%',height:'1px'}},
	{tag:'font',id:'font',text:'原生控件',textStyles:{size:'18px'}}
	]);
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

id

View对象的标识

说明:

String 类型 只读属性

在创建原生控件View对象时设置,如果没有设置标识,此属性值为null。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
	var view = new plus.nativeObj.View("test");
	// ...
	console.log( view.id ); // 输出"test"
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
		</script>
	</head>
	<body>
		View对象的标识<br/>
	</body>
</html>
						

uni-app使用plus注意事项

startAnimation

静态方法,开始原生动画


	void plus.nativeObj.View.startAnimation(options, view, otherview, callback);
						

说明:

参数:

  • options: ( AnimationOptions ) 必选 原生动画参数

    用于指定动画的类型、持续时间等。

  • view: ( AnimationViewStyles | View ) 必选 原生动画主窗口样式

    使用AnimationViewStyles类型对象时指定主窗口(底层窗口)的样式,如背景图片,绘制的文字等。 使用View类型对象时则将View控件作为原生动画的主窗口,动画过程中会自动将View控件从显示栈中移除,动画结束后需要调用show方法才能重新显示。

  • otherview: ( AnimationViewStyles | View ) 可选 原生动画副窗口样式

    使用AnimationViewStyles类型对象时指定副窗口(顶层层窗口)的样式,如背景图片,绘制的文字等。 使用View类型对象时则将View控件作为原生动画的副窗口,动画过程中会自动将View控件从显示栈中移除,动画结束后需要调用show方法才能重新显示。

  • callback: ( NativeObjSuccessCallback ) 可选 原生动画结束回调函数

    原生动画效果结束时触发。 注意:动画结束时仍然会显示原生窗口(主/副窗口),需要调用plus.nativeObj.View.clearAnimation方法关闭原生动画。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var bitmap1=null,bitmap2=null;
// H5 plus事件处理
function plusReady(){
	bitmap1 = new plus.nativeObj.Bitmap('bmp1');
	bitmap1.load('bmp1.png',function(){
		console.log('bmp1.png load success!');
	},function(e){
		console.log('bmp1.png load failed! '+JSON.stringify(e));
	});
	bitmap2 = new plus.nativeObj.Bitmap('bmp2');
	bitmap2.load('bmp2.png',function(){
		console.log('bmp2.png load success!');
	},function(e){
		console.log('bmp2.png load failed! '+JSON.stringify(e));
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 原生动画
function nativeAnimation(){
	// 开始动画
	plus.nativeObj.View.startAnimation( {type:'pop-in'},{bitmap:bitmap1},{bitmap:bitmap2},function(){
		console.log('plus.nativeObj.View.startAnimation动画结束');
		// 关闭原生动画
		plus.nativeObj.View.clearAnimation();
	});
}
// 释放图片
function clearBitmap(){
	bitmap1.clear();
	bitmap2.clear();
	bitmap1=bitmap2=null;
}
		</script>
	</head>
	<body>
		<button onclick="nativeAnimation()">原生窗口动画</button><br/>
		<button onclick="clearBitmap()">释放图片资源</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

clearAnimation

静态方法,关闭原生动画窗口


	void plus.nativeObj.View.clearAnimation(type);
						

说明:

通过plus.nativeObj.View.startAnimation方法开始原生动画后,不会自动关闭原生动画窗口对象,需要调用此方法关闭原生动画。

参数:

  • type: ( String ) 必选 关闭原生动画的类型

    可取值:"none" - 无任何效果直接关闭原生动画窗口。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var bitmap1=null,bitmap2=null;
// H5 plus事件处理
function plusReady(){
	bitmap1 = new plus.nativeObj.Bitmap('bmp1');
	bitmap1.load('bmp1.png',function(){
		console.log('bmp1.png load success!');
	},function(e){
		console.log('bmp1.png load failed! '+JSON.stringify(e));
	});
	bitmap2 = new plus.nativeObj.Bitmap('bmp2');
	bitmap2.load('bmp2.png',function(){
		console.log('bmp2.png load success!');
	},function(e){
		console.log('bmp2.png load failed! '+JSON.stringify(e));
	});
}
// 原生动画
function nativeAnimation(){
	// 开始动画
	plus.nativeObj.View.startAnimation( {type:'pop-in'},{bitmap:bitmap1},{bitmap:bitmap2},function(){
		console.log('plus.nativeObj.View.startAnimation动画结束');
		// 延时500ms关闭原生动画
		setTimeout(funciton(){
			plus.nativeObj.View.clearAnimation();
		}, 500);
	});
}
// 释放图片
function clearBitmap(){
	bitmap1.clear();
	bitmap2.clear();
	bitmap1=bitmap2=null;
}
		</script>
	</head>
	<body>
		<button onclick="nativeAnimation()">原生窗口动画</button><br/>
		<button onclick="clearBitmap()">释放图片资源</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

getViewById

静态方法,获取指定标识的View控件对象


View plus.nativeObj.View.getViewById(id);
						

说明:

如果存在多个指定id标识的View对象,则返回第一个创建的View控件对象。 如果不存在指定id标识的View对象,则返回null。

参数:

  • id: ( String ) 必选 要查找的View控件标识

返回值:

View : View控件对象,若没有查找到指定标识的控件对象则返回null。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建原生View控件
function createView(){
	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
	// ...
	view.show();
	plus.nativeUI.toast('创建原生View控件成功');
}
// 查找View控件
function getView(){
	var view = plus.nativeObj.View.getViewById('test');
	if(view){
		console.log("查找到id为'test'的View控件对象");
		alert("查找到id为'test'的View控件对象");
	}else{
		console.log("未查找到id为'test'的View控件对象,请先创建");
		alert("未查找到id为'test'的View控件对象,请先创建");
	}
}
// 关闭View控件
function closeView(){
	var view = plus.nativeObj.View.getViewById('test');
	view.close();
	plus.nativeUI.toast('销毁View控件成功');
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View控件</button><br/>
		<button onclick="getView()">查找View控件</button><br/>
		<button onclick="closeView()">关闭View控件</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

addEventListener

添加事件监听器


void view.addEventListener(event, listener, capture);
						

说明:

向View控件添加事件监听器,当指定的事件发生时,将触发listener函数的执行。 可多次调用此方法向Webview添加多个监听器,当监听的事件发生时,将按照添加的先后顺序执行。 可通过setTouchEventRect方法指定监听触屏操作的区域。 注意:默认View控件拦截处理触屏事件,可调用view.interceptTouchEvent(false)改变为不拦截处理触屏事件(透传)。

参数:

  • event: ( ViewEvents ) 必选 View控件事件类型

  • listener: ( TouchEventCallback ) 必选 监听事件发生时执行的回调函数

    回调函数的参数中保存了触屏事件信息,如点击坐标等。

  • capture: ( Boolean ) 可选 捕获事件流顺序,暂无效果

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
var view = null;
// 创建原生View控件
function createView(){
	view = new plus.nativeObj.View('test',{top:'200px',left:'0px',height:'60px',width:'100%'});
	// 绘制文本
	view.drawText('原生绘制的文本内容', {}, {size:'60px',color:'#FF0000'});
	view.show();
	plus.nativeUI.toast('创建成功');
}
// 监听原生View控件click事件
function addEventView(){
	view.addEventListener("click", onClick, false);
}
// 监听事件函数
function onClick(e){
	console.log("点击原生控件:"+JSON.stringify(e));
	var clientX = e.clientX;	// 在View控件中的X坐标
	var clientY = e.clientY;	// 在View控件中的Y坐标
	var pageX = e.pageX;		// 在当前Webview窗口(运行此脚本的窗口)中的X坐标
	var pageY = e.pageY;		// 在当前Webview窗口(运行此脚本的窗口)中的Y坐标
	var screenX = e.screenX;	// 在屏幕中的X坐标
	var screenY = e.screenY;	// 在屏幕中的Y坐标
	var target = e.target;		// View控件对象
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View控件</button><br/>
		<button onclick="addEventView()">监听原生View控件click事件</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

animate

View控件内容动画


void view.animate(options, callback);
						

说明:

动画后可能会导致View控件显示内容改变,可通过调用restore方法恢复。

参数:

  • options: ( ViewAnimationOptions ) 可选 View控件动画参数

  • callback: ( NativeObjSuccessCallback ) 可选 View控件动画结束回调函数

    View控件动画效果结束时触发。 注意:动画结束时仍然会显示View控件,需要调用其clear方法关闭View控件。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var bitmap1=null,bitmap2=null;
// H5 plus事件处理
function plusReady(){
	bitmap1 = new plus.nativeObj.Bitmap('bmp1');
	bitmap1.load('bmp1.png',function(){
		console.log('bmp1.png load success!');
	},function(e){
		console.log('bmp1.png load failed! '+JSON.stringify(e));
	});
	bitmap2 = new plus.nativeObj.Bitmap('bmp2');
	bitmap2.load('bmp2.png',function(){
		console.log('bmp2.png load success!');
	},function(e){
		console.log('bmp2.png load failed! '+JSON.stringify(e));
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 原生动画
function nativeAnimation(){
	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'100%',width:'100%'});
	// 绘制图片
	view.drawBitmap( bitmap2, {top:'0px',left:'0px',width:'100%',height:'100%'}, {top:'auto',left:'auto',width:'100%',height:'100%'} );
	// 开始动画
	plus.nativeObj.View.startAnimation( {type:'pop-in'},{bitmap:bitmap1},view,function(){
		console.log('plus.nativeObj.View.startAnimation动画结束');
		// 开始view控件动画
		view.animate({type:'shrink',frames:20,region:{top:'44px',bottom:'48px'}},function(){
			plus.nativeObj.View.clearAnimation();
		});
	});
}
		</script>
	</head>
	<body>
		<button onclick="nativeAnimation()">原生窗口动画&amp;View控件动画</button><br/>
	</body>
</html>
					

uni-app使用plus注意事项

close

关闭View控件


void view.close();
						

说明:

释放View控件资源,View对象不可再操作,如果View控件已经显示则自动隐藏。

参数:

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
var view = null;
// 创建原生View控件
function createView(){
	view = new plus.nativeObj.View('test',{top:'200px',left:'0px',height:'60px',width:'100%'});
	// 绘制文本
	view.drawText('原生绘制的文本内容', {}, {size:'60px',color:'#FF0000'});
	view.show();
}
// 关闭原生View控件
function closeView(){
	view.close();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
		<button onclick="closeView()">关闭View对象</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

clearRect

清空矩形区域


void view.clearRect(position, id);
						

说明:

清除指定矩形区域内容,透明显示其后面的内容。 可多次调用设置多个区域透明。

参数:

  • position: ( Position ) 可选 清除的矩形区域

    相对于View控件的区域信息,默认值为{top:'0px',left:'0px',width:'100%',height:'100%'}。

  • id: ( String ) 可选 绘制操作标识

    当前View控件已经存在此清除操作(包括绘制操作drawBitmap/drawRect/drawText)标识,则更新绘制操作。 否则做为新的清除操作处理。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建原生View控件
function createView(){
	var view = new plus.nativeObj.View('test',{top:'200px',left:'0px',height:'44px',width:'100%'});
	// 绘制矩形
	view.drawRect("#FF0000", {top:'0px',left:'0px',width:'100%',height:'100%'});
	// 清空矩形区域
	view.clearRect({top:'11px',left:'100px',width:'100px',height:'22px'});
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

draw

绘制内容


void view.draw(tags);
						

说明:

在当前View控件之上绘制指定的内容,可一次指定绘制多个元素,绘制元素可以是图片/矩形区域/文本, 即将多次调用drawBitmap/drawRect/drawText方法合并调用一次draw方法来实现, 推荐使用draw方法来替换多次调用drawBitmap/drawRect/drawText。

参数:

  • tags: ( Array[ViewDrawTagStyles] ) 可选 View控件初始绘制内容

    可设置绘制图片、矩形区域、文本等内容。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var view=null;
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建原生View控件
function createView(){
	view = new plus.nativeObj.View('test',
	{top:'0px',left:'0px',height:'44px',width:'100%'});
	view.draw([
		{tag:'img',id:'img',src:'nbg.png',position:{top:'0px',left:'0px',width:'100%',height:'100%'}},
		{tag:'rect',id:'rect',color:'#FF0000',position:{top:'0px',left:'0px',width:'100%',height:'1px'}},
		{tag:'font',id:'font',text:'原生View控件',textStyles:{size:'18px'},position:{top:'0px',left:'0px',width:'100%',height:'1px'}}
		]);
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

drawBitmap

绘制图片


void view.drawBitmap(src, sprite, position, id);
						

说明:

在当前View控件之上绘制指定的图片,如果图片无效则不做任何操作。

参数:

  • src: ( String | Bitmap ) 必选 绘制的图片资源

    可以是图片资源路径(字符串类型)或者图片对象(plus.nativeObj.Bitmap对象)。 src也可以是图片路径,要求为本地路径,可支持以下路径: 相对路径 - 相对于当前页面的host位置,如"a.jpg",注意当前页面为网络地址则不支持; 绝对路径 - 系统绝对路径,如Android平台"/sdcard/logo.png",此类路径通常通过其它5+ API获取的; 扩展相对路径URL(RelativeURL) - 以"_"开头的相对路径,如"_www/a.jpg"; 本地路径URL - 以“file://”开头,后面跟随系统绝对路径。 src为图片路径时支持gif图片,当设置的图片路径文件使用".gif"后缀时则认为是gif图片,如"_www/loading.gif"。

  • sprite: ( Position ) 可选 图片源的绘制区域

    相对于图片的区域信息,默认值为{top:'0px',left:'0px',width:'100%',height:'100%'}。

  • position: ( Position ) 可选 绘制图片的目标区域

    相对于View控件的区域信息,默认值为{top:'0px',left:'0px',width:'100%',height:'100%'}。 当left/top设置为具体值时,如果src区域与dst区域的宽/高不一致时采用缩放绘制。

  • id: ( String ) 可选 绘制操作标识

    当前View控件已经存在此绘制操作(包括drawBitmap/drawRect/drawText)标识,则更新绘制操作。 否则做为新的绘制操作处理。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var bitmap1=null;
// H5 plus事件处理
function plusReady(){
	bitmap1 = new plus.nativeObj.Bitmap('bmp1');
	bitmap1.load('bmp1.png',function(){
		console.log('bmp1.png load success!');
	},function(e){
		console.log('bmp1.png load failed! '+JSON.stringify(e));
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建原生View控件
function createView(){
	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
	// 绘制图片
	view.drawBitmap( bitmap1, {top:'0px',left:'0px',width:'100%',height:'100%'}, {top:'auto',left:'auto',width:'100%',height:'100%'} );
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

drawRect

绘制矩形区域


void view.drawRect(color, position, id);
						

说明:

在当前View控件之上绘制指定颜色的矩形区域。

参数:

  • styles: ( RectStyles | String ) 必选 矩形区域的样式

    字符串类型或RectStyles类型,使用字符串时表示设置矩形区域的颜色,可取值: "#RRGGBB"格式字符串,如"#FF0000"表示绘制红色区域; "rgba(R,G,B,A)",其中R/G/B分别代表红色值/绿色值/蓝色值,正整数类型,取值范围为0-255,A为透明度,浮点数类型,取值范围为0-1(0为全透明,1为不透明),如"rgba(255,0,0,0.5)",表示红色半透明。 默认值为"#FFFFFF"(白色)。

  • position: ( Position ) 可选 绘制的矩形区域

    相对于View控件的区域信息,默认值为{top:'0px',left:'0px',width:'100%',height:'100%'}。

  • id: ( String ) 可选 绘制操作标识

    当前View控件已经存在此绘制操作(包括drawBitmap/drawRect/drawText)标识,则更新绘制操作。 否则做为新的绘制操作处理。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener('plusready', plusReady, false);
}
// 创建原生View控件
function createView(){
	var view = new plus.nativeObj.View('test',{top:'200px',left:'0px',height:'44px',width:'100%'});
	// 绘制矩形
	view.drawRect({color:'#FF0000'}, {top:'0px',left:'0px',width:'100%',height:'100%'});
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

drawText

绘制文本


void view.drawText(text, position, styles, id);
						

说明:

在当前View控件之上绘制指定的文本内容,如果文本为空则不做任何操作。

参数:

  • text: ( String ) 必选 要绘制的文本内容

  • position: ( Position ) 可选 绘制文本的目标区域

    相对于View控件的区域信息,文字在目前区域中水平/垂直方向居中绘制,默认值为{top:'0px',left:'0px',width:'100%',height:'100%'}。 height属性值支持设置为"wrap_content",表示文本高度根据内容自动计算,此时通过top来定位文本绘制的起始位置。

  • styles: ( TextStyles ) 可选 绘制文本的样式

    用于指定字体大小、字体颜色、字体类型等信息。

  • id: ( String ) 可选 绘制操作标识

    当前View控件已经存在此绘制操作(包括drawBitmap/drawRect/drawText)标识,则更新绘制操作。 否则做为新的绘制操作处理。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建原生View控件
function createView(){
	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
	// 绘制文本
	view.drawText('原生绘制的文本内容', {top:'0px',left:'0px',width:'100%',height:'100%'}, {size:'22px',color:'#FF0000'});
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

drawRichText

绘制富文本


void view.drawRichText(text, position, styles, id);
						

说明:

在当前View控件之上绘制指定的文本内容,如果文本为空则不做任何操作。

参数:

  • text: ( String ) 必选 要绘制的富文本内容

    富文本使用html的部分标签,具体标签如下: 图片标签<img src="图片资源url地址" width="图片显示的宽度" height="图片显示的高度" onclick="console.log('clicked img')"></img>; 字体标签<font color="字体颜色"></font>,内容在一行显示不下时自动换行,行高默认为字体的1.2倍; 换行标签<br/>; 链接标签<a onclick="console.log('clicked a')">链接地址</a>。 如示例“<img onclick="console.log('clicked img')" src="http://img-cdn-qiniu.dcloud.net.cn/icon2.png"/><a onclick="console.log(clicked a)">链接地址</a>”。

  • position: ( Position ) 可选 绘制富文本的目标区域

    相对于View控件的区域信息,富文本内容在区域中居顶从左到右绘制,默认值为{top:'0px',left:'0px',width:'100%',height:'100%'}。 height属性值支持设置为"wrap_content",表示文本高度根据内容自动计算,此时通过top来定位文本绘制的起始位置。

  • styles: ( RichTextStyles ) 可选 绘制富文本的样式

    用于指定默认字体等信息。

  • id: ( String ) 可选 绘制操作标识

    当前View控件已经存在此绘制操作(包括drawBitmap/drawRect/drawText/drawRichText)标识,则更新绘制操作。 否则做为新的绘制操作处理。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener('plusready', plusReady, false);
}
// 创建原生View控件
function createView(){
	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
	var richtext = '<font color="#FF0000" style="font-size:10px;">文本</font><br/><a href="" style="font-size:12px;">链接</a><br/><img src="./t.png" width="20px" height="20px"></img>';
	// 绘制文本
	view.drawRichText(richtext, {top:'0px',left:'0px',width:'100%',height:'wrap_content'});
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

drawInput

绘制输入框


void view.drawInput(position, styles, id);
						

说明:

在当前View控件之上绘制输入框。

参数:

  • position: ( Position ) 可选 绘制输入框的目标区域

    相对于View控件的区域信息,默认值为{top:'0px',left:'0px',width:'100%',height:'100%'}。

  • styles: ( InputStyles ) 可选 输入框的样式

    用于定义输入框的显示样式,如字体大小,提示内容等信息。

  • id: ( String ) 可选 绘制操作标识

    当前View控件已经存在此绘制操作(drawInput)标识,则更新绘制操作;否则做为新的绘制操作处理。 也用于getInputValueById方法获取编辑框的输入内容。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener('plusready', plusReady, false);
}
// 创建原生View控件
function createView(){
	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
	view.drawInput({top:'0px',left:'0px',width:'100%',height:'20px'}, {fontSize:'16px'}, 'input');
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

getInputFocusById

获取编辑框的焦点状态


Boolean view.getInputFocusById(id);
						

说明:

通过id查找到指定的编辑框,获取其焦点状态。 如果指定的id无效则返回null。

参数:

  • id: ( String ) 可选 输入框的操作标识

返回值:

Boolean : 编辑框的焦点状态,true表示编辑框获取焦点,false表示编辑框失去焦点

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener('plusready', plusReady, false);
}
// 创建原生View控件
var view = null;
function createView(){
	view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
	view.drawInput({top:'0px',left:'0px',width:'100%',height:'20px'}, {fontSize:'16px'}, 'input');
	view.show();
}
// 获取编辑框焦点状态
function getFocus(){
	var focusable = view.getInputFocusById("input');
	console.log("input focus status: "+focusable);
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建带编辑框的View对象</button><br/>
		<button onclidk="getFocus()">获取编辑框焦点状态</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

getInputValueById

获取编辑框的内容


String view.getInputValueById(id);
						

说明:

通过id查找到指定的编辑框,获取其输入的字符串。 如果指定的id无效则返回null。

参数:

  • id: ( String ) 可选 输入框的操作标识

返回值:

String : 编辑框输入的文本

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener('plusready', plusReady, false);
}
// 创建原生View控件
var view = null;
function createView(){
	view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
	view.drawInput({top:'0px',left:'0px',width:'100%',height:'20px'}, {fontSize:'16px'}, 'input');
	view.show();
}
// 获取编辑框内容
function getText(){
	if(!view){
		console.log("View is null!");
		return;
	}
	var txt = view.getInputValueById("input");
	console.log("Input text:"+txt);
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建带编辑框的View对象</button><br/>
		<button onclidk="getText()">获取编辑的内容</button>
	</body>
</html>
						

uni-app使用plus注意事项

reset

重置view控件显示内容


void view.reset();
						

说明:

清除调用drawBitmap、drawText方法绘制的内容,将View控件重置为空内容(透明不可见)。

参数:

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var view = null;
// H5 plus事件处理
function plusReady(){
	view = new plus.nativeObj.View('test',{top:'200px',left:'0px',height:'60px',width:'100%'});
	view.show();
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 绘制View控件
function drawView(){
	// 绘制文本
	view.drawText( 'Test绘制文本内容', {}, {size:'60px',color:'#FF0000'} );
}
// 重置View控件
function resetView(){
	view.reset();
}
		</script>
	</head>
	<body>
		<button onclick="drawView()">绘制View对象</button><br/>
		<button onclick="resetView()">重置View对象</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

restore

恢复View控件显示内容


void view.restore();
						

说明:

恢复调用animate方法改变View控件的内容,更新至动画前的内容。

参数:

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var bitmap1=null,view=null;
// H5 plus事件处理
function plusReady(){
	bitmap1 = new plus.nativeObj.Bitmap('bmp1');
	bitmap1.load('bmp1.png',function(){
		console.log('bmp1.png load success!');
	},function(e){
		console.log('bmp1.png load failed! '+JSON.stringify(e));
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建View控件
function createView(){
	view = new plus.nativeObj.View('test',{top:'100px',left:'0px',height:'100%',width:'100%'});
	// 绘制图片
	view.drawBitmap( bitmap1, {top:'0px',left:'0px',width:'100%',height:'100%'}, {top:'auto',left:'auto',width:'100%',height:'100%'} );
	view.show();
}
// View控件动画
function animateView(){
	// 开始view控件动画
	view.animate({type:'shrink',frames:20,region:{top:'44px',bottom:'48px'}},function(){
		console.log("View控件动画结束");
	});
}
// 恢复View控件
function restoreView(){
	view.restore();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View控件</button><br/>
		<button onclick="animateView()">View控件动画</button><br/>
		<button onclick="restoreView()">恢复View控件</button><br/>
	</body>
</html>
					

uni-app使用plus注意事项

show

显示View控件


void view.show();
						

说明:

将View控件显示到屏幕,显示在所有Webview窗口之上。

参数:

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建原生View控件
function createView(){
	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
	// 绘制文本
	view.drawText( 'Test', {}, {size:'60px',color:'#FF0000'} );
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

setInputFocusById

设置编辑框的焦点状态


void view.setInputFocusById(id, focusable);
						

说明:

通过id查找到指定的编辑框,并设置编辑框的焦点状态。 如果指定的id无效则操作无效。

参数:

  • id: ( String ) 必选 输入框的操作标识

  • focusable: ( Boolean ) 必选 输入框的焦点状态

    可取值: true - 表示设置输入框获取焦点状态; false - 表示设置输入框失去焦点状态。

返回值:

String : 编辑框输入的文本

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener('plusready', plusReady, false);
}
// 创建原生View控件
var view = null;
function createView(){
	view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
	view.drawInput({top:'0px',left:'0px',width:'100%',height:'20px'}, {fontSize:'16px'}, 'input');
	view.show();
}
// 设置编辑框获取焦点
function setFocus(){
	view.setInputFocusById("input', true);
}
// 设置编辑框失去焦点
function setBlur(){
	view.setInputFocusById("input", false);
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建带编辑框的View对象</button><br/>
		<button onclidk="setFocus()">设置获取焦点</button><br/>
		<button onclidk="setBlur()">设置失去焦点</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

setStyle

设置View控件的样式


void view.setStyle(styles);
						

说明:

动态更新View控件样式。

参数:

  • styles: ( ViewStyles ) 可选 View控件的样式

    更新控件的位置、大小等信息。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建原生View控件
var view=null;
function createView(){
	view = new plus.nativeObj.View('test',{top:'200px',left:'0px',height:'50%',width:'100%'});
	// 绘制区域
	view.drawRect("#FF0000", {top:'0px',left:'0px',width:'100%',height:'50%'});
	view.drawRect("#00FF00", {top:'50%',left:'0px',width:'100%',height:'50%'});
	view.show();
}
// 更新原生View控件
function updateView(){
	view.setStyle({top:'0px',left:'0px',height:'50%',width:'100%'});
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
		<button onclick="updateView()">更新View对象</button>
	</body>
</html>
						

uni-app使用plus注意事项

setTouchEventRect

指定监听触屏事件区域


void view.setTouchEventRect(rect);
						

说明:

当调用addEventListener监听View控件事件时,可调用此方法限定监听事件的区域,仅当用户触屏操作在指定区域时才触发监听事件。 非限定监听事件的区域则不拦截,透传给其它窗口处理。 注意:此操作覆盖之前设置的区域。

参数:

  • rect: ( Array[Rect] | Rect ) 可选 要监听触屏事件区域

    参数类型为数组(Array)时可支持设置多个区域。 Rect为相对于View控件的区域信息(超出View控件区域则无效),默认值为{top:'0px',left:'0px',width:'100%',height:'100%'},即默认拦截View控件所有区域。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建原生View控件
var view=null;
function createView(){
	view = new plus.nativeObj.View('test',{top:'200px',left:'0px',height:'50%',width:'100%'});
	// 绘制区域
	view.drawRect("#FF0000", {top:'0px',left:'0px',width:'100%',height:'50%'});
	view.drawRect("#00FF00", {top:'50%',left:'0px',width:'100%',height:'50%'});
	view.show();
}
// 监听事件
function listenerEvent(){
	view.setTouchEventRect({top:'0px',left:'0px',width:'100%',height:'50%'});
	view.addEventListener("click", function(e){
		console.log("点击原生控件:"+JSON.stringify(e));
	}, false);
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
		<button onclick="listenerEvent()">监听事件</button>
	</body>
</html>
						

uni-app使用plus注意事项

hide

隐藏View控件


void view.hide();
						

说明:

将View控件从屏幕隐藏,如果View控件未显示则不做任何操作。

参数:

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
var view = null;
// 创建原生View控件
function createView(){
	view = new plus.nativeObj.View('test',{top:'200px',left:'0px',height:'60px',width:'100%'});
	// 绘制文本
	view.drawText('原生绘制的文本内容', {}, {size:'60px',color:'#FF0000'});
	plus.nativeUI.toast('创建成功');
}
// 显示原生View控件
function showView(){
	view.show();
}
// 隐藏原生View控件
function hideView(){
	view.hide();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View控件</button><br/>
		<button onclick="showView()">显示View控件</button><br/>
		<button onclick="hideView()">隐藏View控件</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

interceptTouchEvent

是否拦截View控件的触屏事件


void view.interceptTouchEvent(intercept);
						

说明:

设置为拦截后View控件上的触屏事件不再传递(即不透传),否则触屏事件将继续传递给View控件下的其它窗口处理(即透传)。 注意:View控件默认拦截触屏事件(不透传)。

参数:

  • intercept: ( Boolean ) 可选 是否拦截触屏事件

    true表示拦截处理触屏事件,false表示不拦截触屏事件,透传事件给其它窗口处理。 默认值为true。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
var view = null;
// 创建原生View控件
function createView(){
	view = new plus.nativeObj.View('test',{top:'200px',left:'0px',height:'60px',width:'100%'});
	// 绘制文本
	view.drawText('原生绘制的文本内容', {}, {size:'60px',color:'#FF0000'});
	view.interceptTouchEvent(true);
	plus.nativeUI.toast('创建成功');
}
// 显示原生View控件
function showView(){
	view.show();
}
// 隐藏原生View控件
function hideView(){
	view.hide();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View控件并拦截事件</button><br/>
		<button onclick="showView()">显示View控件</button><br/>
		<button onclick="hideView()">隐藏View控件</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

isVisible

获取View控件的显示状态


Boolean view.isVisible();
						

参数:

返回值:

Boolean : 如果View控件显示则返回true,如果View控件未显示则返回false。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
var view = null;
// 创建原生View控件
function createView(){
	view = new plus.nativeObj.View('test',{top:'200px',left:'0px',height:'60px',width:'100%'});
	// 绘制文本
	view.drawText('原生绘制的文本内容', {}, {size:'60px',color:'#FF0000'});
	plus.nativeUI.toast('创建成功');
}
// 显示原生View控件
function showView(){
	view.show();
}
// 隐藏原生View控件
function hideView(){
	view.hide();
}
// 查看View控件的显示状态
function visibleView(){
	var visible = view.isVisible();
	console.log('View控件状态:'+visible);
	alert('View控件状态:'+visible);
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View控件</button><br/>
		<button onclick="showView()">显示View控件</button><br/>
		<button onclick="hideView()">隐藏View控件</button><br/>
		<button onclick="visibleView()">获取View控件的显示状态</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

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: (Rect 类型 )动画作用区域

    支持以下属性: top - 区域距离控件顶部的偏移量,属性值可取像素值(如"100px"),百分比(如"10%",相对于控件的高度),默认值为'0px'; bottom - 区域距离控件底部的偏移量,属性值可取像素值(如"100px"),百分比(如"10%",相对于控件的高度),默认值为'0px'; left - 区域距离控件左侧的偏移量,属性值可取像素值(如"100px"),百分比(如"10%",相对于控件的宽度),默认值为'0px'; right - 区域距离控件右侧的偏移量,属性值可取像素值(如"100px"),百分比(如"10%",相对于控件的宽度),默认值为'0px'。 如“{top:'44px',bottom:'48px'}”。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var bitmap1=null;
// H5 plus事件处理
function plusReady(){
	bitmap1 = new plus.nativeObj.Bitmap('bmp1');
	bitmap1.load('bmp1.png',function(){
		console.log('bmp1.png load success!');
	},function(e){
		console.log('bmp1.png load failed! '+JSON.stringify(e));
	});
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
var view=null;
// 创建原生View控件
function createView(){
	view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
	// 绘制图片
	view.drawBitmap( bitmap1, {top:'0px',left:'0px',width:'100%',height:'100%'}, {top:'auto',left:'auto',width:'100%',height:'100%'} );
	view.show();
}
function animateView(){
	view.animate({type:'shrink',frames:20,region:{top:'44px',bottom:'48px'}});
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
		<button onclick="animateView()">View对象动画</button><br/>
	</body>
</html>
			

uni-app使用plus注意事项

ViewDrawTagStyles

View控件绘制元素参数


interface ViewDrawTagStyles {
	attribute String id;
	attribute String tag;
	attribute String color;
	attribute InputStyles inputStyles;
	attribute Position position;
	attribute RectStyles rectStyles;
	attribute String src;
	attribute Position sprite;
	attribute String text;
	attribute TextStyles textStyles;
	attribute RichTextStyles richTextStyles;
}				

说明:

指定绘制图片、矩形区域、文本内容等信息。

属性:

  • id: (String 类型 )绘制操作标识

    可通过view对象的drawBitmap/drawRect/drawText/clearRect方法进行更新。

  • tag: (String 类型 )绘制操作类型

    可取值: "img" - 绘制图片,与drawBitmap操作一致,此时id、src、position、sprite属性值有效; "rect" - 绘制矩形区域,与drawRect操作一致,此时id、color、position、rectStyles属性值有效; "font" - 绘制文本内容,与drawText操作一致,此时id、position、text、textStyles属性值有效; "richtext" - 绘制富文本内容,与drawRichText操作一致,此时id、position、text、richTextStyles属性值有效; "input" - 绘制输入框内容,此时id、position、inputStyles属性值有效。

  • color: (String 类型 )矩形区域颜色

    不推荐使用(推荐使用rectStyles),可取值: "#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"(白色)。

  • inputStyles: (InputStyles 类型 )绘制输入框的样式

    当tag属性值为"input"时有效,用于指定绘制输入框的样式、大小位置等信息。,

  • position: (Position 类型 )绘制内容区域

    当tag属性值为"img"时,用于指定绘制图片的目标区域; 当tag属性值为"rect"时,用于指定绘制的矩形区域; 当tag属性值为"font"时,用于指定绘制文本的目标区域,此时height属性值支持设置为"wrap_content",表示文本高度根据内容自动计算,此时通过top来定位文本绘制的起始位置。 相对于View控件的区域信息,默认值为{top:'0px',left:'0px',width:'100%',height:'100%'}。

  • rectStyles: (RectStyles 类型 )绘制区域的样式

    当tag属性值为"rect"时有效,用于指定绘制区域的样式、填充颜色、圆角大小等信息。

  • src: (String | Bitmap 类型 )绘制的图片资源

    当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"时有效,用于指定绘制文本内容的字体大小、字体颜色、字体类型等信息。

  • richTextStyles: (RichTextStyles 类型 )绘制富文本的样式

    当tag属性值为"richtext"时有效,用于指定绘制富文本内容的默认字体颜色、字体类型等信息。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
var view=null;
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建原生View控件
function createView(){
	view = new plus.nativeObj.View('test',
	{top:'0px',left:'0px',height:'44px',width:'100%'});
	view.draw([
		{tag:'img',id:'img',src:'nbg.png',position:{top:'0px',left:'0px',width:'100%',height:'100%'}},
		{tag:'rect',id:'rect',rectStyles:{color:'#FF0000'},position:{top:'0px',left:'0px',width:'100%',height:'1px'}},
		{tag:'font',id:'font',text:'原生控件',textStyles:{size:'18px'}},
		{tag:'input',id:'input','inputStyles':{fonstSize:'16px'}},
		]);
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
			

uni-app使用plus注意事项

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 backgroundColor;
	attribute String left;
	attribute String top;
	attribute String bottom;
	attribute String height;
	attribute String width;
	attribute String dock;
	attribute Number opacity;
	attribute String position;
	attribute ViewStatusbarStyles statusbar;
}				

说明:

包括位置、大小等信息等,其中位置信息相对于父容器控件进行计算。

属性:

  • backgroundColor: (String 类型 )区域背景颜色

    可取值: #RRGGBB"格式字符串,如"#FF0000"表示绘制红色区域; "rgba(R,G,B,A)",其中R/G/B分别代表红色值/绿色值/蓝色值,正整数类型,取值范围为0-255,A为透明度,浮点数类型,取值范围为0-1(0为全透明,1为不透明),如"rgba(255,0,0,0.5)",表示红色半透明。 默认值为"#FFFFFF"(白色)。 "rgba(R,G,B,A)",其中R/G/B分别代表红色值/绿色值/蓝色值,正整数类型,取值范围为0-255,A为透明度,浮点数类型,取值范围为0-1(0为全透明,1为不透明),如"rgba(255,0,0,0.5)",表示红色半透明。 默认值为"#FFFFFF"(白色)。

  • bottom: (String 类型 )View控件垂直向上的偏移量

    现对于父容器底部的距离,可取值: 像素值,如"100px"; 百分比,如"10%",相对于父容器的高度,如果没有父容器则相对于屏幕高度。 当设置了top和height值时,忽略此属性值; 未设置height值时,可通过top和bottom属性值来确定View控件的高度。

  • dock: (String 类型 )View控件的停靠方式

    仅当View控件添加到Webview窗口对象中并且position属性值设置为"dock"时才生效,此时View控件挤压Webview窗口的大小。 可取值: "top",控件停靠则页面顶部; "bottom",控件停靠在页面底部; "right",控件停靠在页面右侧; "left",控件停靠在页面左侧。 默认值为"top"。

  • height: (String 类型 )区域的高度

    可取值: 像素值,如"100px"; 百分比,如"10%",相对于父容器的高度,如果没有父容器则相对于屏幕高度; 内容自适应,如"wrap_content",根据内容计算控件的高度。 默认值为"100%"。

  • left: (String 类型 )区域左上角的水平偏移量

    可取值: 像素值,如"100px"; 百分比,如"10%",相对于父控件的宽度; 自动计算,如"auto",根据width值自动计算,相对于父控件水平居中。 默认值为"0px"。

  • opacity: (Number 类型 )View控件的不透明度

    取值范围为0-1,0为全透明,1为不透明,默认值为1,即不透明。

    平台支持

    • Android - 4.0+ (支持) :

      需Android4.0及以上平台才支持,Android4.0以前平台忽略此属性。

    • iOS - 7.0+ (支持)
  • position: (String 类型 )View控件的排版方式

    仅当View控件添加到Webview窗口对象中时才生效。 可取值: "static",View控件在页面中正常定位,如果页面存在滚动条则随窗口内容滚动; "absolute",Veiw控件在页面中绝对定位,如果页面存在滚动条不随窗口内容滚动; "dock",View控件在页面中停靠,停靠的位置由dock属性值决定。 默认值为"absolute"。

  • statusbar: (ViewStatusbarStyles 类型 )View控件的状态栏样式

    仅在应用设置为沉浸式状态栏样式下有效,设置此属性后将自动保留系统状态栏区域不被View控件占用(即View控件非沉浸式样式显示)。

  • top: (String 类型 )View控件左上角的垂直偏移量

    可取值:像素值,如"100px";百分比,如"10%",相对于父控件的高度;自动计算,如"auto",根据height值自动计算,相对于父控件垂直居中。

  • width: (String 类型 )区域的宽度

    可取值:像素值,如"100px";百分比,如"10%",相对于父控件的宽度。

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener("plusready",plusReady,false);
}
// 创建原生View控件
var view=null;
function createView(){
	view = new plus.nativeObj.View('test',{top:'200px',left:'0px',height:'50%',width:'100%',backgroundColor:'#FF0000'});
	view.drawRect("#000000", {top:'25%',left:'25%',width:'50%',height:'50%'}, 'test');
	view.show();
}
// 更新原生View控件
function updateView(){
	view.setStyle({backgroundColor:'#00FF00'});	// 更新背景颜色
	view.drawRect('#FFFFFF', {top:'25%',left:'25%',width:'50%',height:'50%'}, 'test');	// 更新区域
}
// 关闭View控件
function closeView(){
	view.close();
	view=null;
}
		</script>
	</head>
	<body>
		<br/><br/>
		<button onclick="createView()">创建View对象</button><br/>
		<button onclick="updateView()">更新View对象</button><br/>
		<button onclick="closeView()">关闭View对象</button>
	</body>
</html>
				

uni-app使用plus注意事项

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 : 无

InputCompleteCallback

输入框完成输入回调函数


void onComplete(Event event){
	// Code here
	var text = event.text; // 保存用户输入的内容
}
				

说明:

弹出软键盘完成输入后,点击软键盘上的“完成”、“前往”按钮时触发。

参数:

  • event: ( Event ) 可选 保存编辑框输入信息

    可通过event.text(String类型)获取用户输入的文本。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener('plusready', plusReady, false);
}
// 创建原生View控件
function createView(){
	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
	view.drawInput({top:'0px',left:'0px',width:'100%',height:'20px'}, {fontSize:'16px',onComplete:function(e){
		console.log("Input completed:"+e.text);
	}}, 'input');
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

InputEventCallback

输入框事件回调函数


void onEvent(Event event){
	// Code here
	var id = event.id; // 编辑框的标识
}
				

说明:

输入框获取/失去焦点时触发。

参数:

  • event: ( Event ) 可选 输入框信息

    可通过event.id(String类型)获取输入框的标识。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener('plusready', plusReady, false);
}
// 创建原生View控件
function createView(){
	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
	view.drawInput({top:'0px',left:'0px',width:'100%',height:'20px'}, {fontSize:'16px',onFocus:function(e){
		console.log("Input focused:"+e.id);
	},onBlur:function(e){
		console.log("Input blured:"+e.id);
	}}, 'input');
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
						

uni-app使用plus注意事项

RichTextClickedCallback

富文本区域点击事件回调函数


void onEvent(Event event){
	// Event handled code.
	var tagName = event.tagName;
	var href = event.href;
	var src = event.src;
}
				

说明:

用户点击RichText区域时触发,如果点击RichText的a标签则回调函数event参数中包含tagName(值为"a")和href属性; 如果点击RichText的img标签则回调函数event参数中包含tagName(值为"img")和src属性; 如果点击其它区域则回调函数event参数中包含tagName(值为"")。

参数:

  • event: ( Event ) 必选 点击事件参数

    包含以下属性: "tagName" - 如果点击RichText上的a/img标签则为"a"/"img",否则未空字符串""; "href" - 点击RichText上的a标签时有效; "src" - 点击RichText上的img标签时有效。

返回值:

void : 无

示例:


<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<title>NativeObj Example</title>
		<script type="text/javascript">
// H5 plus事件处理
function plusReady(){
}
if(window.plus){
	plusReady();
}else{
	document.addEventListener('plusready', plusReady, false);
}
// 创建原生View控件
function createView(){
	var view = new plus.nativeObj.View('test',{top:'0px',left:'0px',height:'44px',width:'100%'});
	var richtext = '<font color="#FF0000" style="font-size:10px;">文本</font><br/><a href="a-href" style="font-size:12px;">链接</a><br/><img href="img-href" src="./t.png" width="20px" height="20px"></img>';
	// 绘制文本
	view.drawRichText(richtext, {top:'0px',left:'0px',width:'100%',height:'wrap_content'}, {family:'Times New Roman',fontSrc:'_www/font.ttf',onClick:function(e){
		console.log("Clicked: "+JSON.stringify(e));
	}});
	view.show();
}
		</script>
	</head>
	<body>
		<button onclick="createView()">创建View对象</button><br/>
	</body>
</html>
				

uni-app使用plus注意事项

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;
	var imageIndex = e.currentImageIndex;
}
				

参数:

  • event: ( Event ) 必选 触屏数据

    Event对象包含以下属性: target:保存触发此事件的对象; clientX:Number类型,保存触摸目标在View控件中的X坐标; clientY:Number类型,保存触摸目标在View控件中的Y坐标; pageX:Number类型,保存触摸目标在当前页面(运行此脚本的窗口)中的X坐标; pageY:Number类型,保存触摸目标在当前页面(运行此脚本的窗口)中的Y坐标; screenX:Number类型,保存触摸目标在屏幕中的X坐标; screenY:Number类型,保存触摸目标在屏幕中的Y坐标; currentImageIndex:Number类型,保存当前图片轮播控件显示的图片索引值(从0开始),仅监听图片轮播控件(ImageSlider)的click事件时包含此属性。

返回值:

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类型)获取错误描述信息。

返回值:

void : 无

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击“接受”或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。