nativeObj

nativeObj管理系统原生对象。

对象:

回调方法:

权限:

permissions


"NativeObj": {
	"description": "系统原生对象"
}
			

Bitmap

原生图片对象

说明:

原生图片对象会占用较大的内存资源,在使用时需谨慎管理,当图片不再使用时应该及时调用clear方法进行销毁。

构造:

属性:

方法:

Bitmap(id)

创建Bitmap对象


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

说明:

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

参数:

返回值:

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>
						

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>
						

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>
						

getBitmapById

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


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

说明:

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

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>
						

load

加载Bitmap图片


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

说明:

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

参数:

返回值:

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>
						

loadBase64Data

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


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

说明:

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

参数:

返回值:

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>
						

save

保存图片


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

说明:

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

参数:

返回值:

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>
						

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>
						

BitmapSaveOptions

JSON对象,保存图片的参数

属性:

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
}
				

参数:

返回值:

void : 无

NativeObjSuccessCallback

操作成功回调函数接口


void onSuccess(){
	// Code here
}
				

参数:

返回值:

void : 无

NativeObjErrorCallback

操作错误回调函数接口


function void onError( Exception error ) {
	// Error.
	var code = error.code; // 错误编码
	var message = error.message; // 错误描述信息
}
				

参数:

返回值:

void : 无