1 Events模块管理客户端以及系统事件
1.1 "newintent"
程序切换到后台后被第三方程序激活到前台时触发此事件。
若应用需要根据第三方程序调用时进行业务处理(如判断传入的参数打开指定页面),可通过注册“newintent”事件监听
1.2 "pause"
当程序从前台切换到后台时会触发此事件
1.3 "resume"
运行环境从后台切换到前台事件
1.4 "splashclosed"
应用启动后关闭启动界面时触发,不管是应用自动关闭还是调用plus.navigator.closeSplashscreen方法,都会触发此事件。
2 plus.android直接调用安卓Native Java接口通道
2.1 requestPermissions请求权限
// 申请定位权限
function requestLocation(){
plus.android.requestPermissions(['android.permission.ACCESS_FINE_LOCATION'],
function(e){
if(e.deniedAlways.length>0){ //权限被永久拒绝
// 弹出提示框解释为何需要定位权限,引导用户打开设置页面开启
console.log('Always Denied!!! '+e.deniedAlways.toString());
}
if(e.deniedPresent.length>0){ //权限被临时拒绝
// 弹出提示框解释为何需要定位权限,可再次调用plus.android.requestPermissions申请权限
console.log('Present Denied!!! '+e.deniedPresent.toString());
}
if(e.granted.length>0){ //权限被允许
//调用依赖获取定位权限的代码
console.log('Granted!!! '+e.granted.toString());
}
}, function(e){
console.log('Request Permissions error:'+JSON.stringify(e));
}
);
}
2.2 importClass导入Java类对象
// 导入android.content.Intent类对象
function testImport(){
var Intent = plus.android.importClass("android.content.Intent");
// 导入后可以使用new方法创建类的实例对象
var intent=new Intent();
}
3 plus.ios直接调用ios的Native Objective-C接口通道
3.1 newObject 创建实例对象
// 监听plusready事件
document.addEventListener( "plusready", function(){
// 扩展API加载完毕,现在可以正常调用扩展API
// 创建GKLocalPlayer类的一个实例对象
var localplayer = plus.ios.newObject("GKLocalPlayer");
}, false );
3.2 invoke 调用对象(类对象/示例对象)的方法
// 监听plusready事件
document.addEventListener( "plusready", function(){
// 扩展API加载完毕,现在可以正常调用扩展API
// 创建UIAlertView类的实例对象
var view = plus.ios.newObject("UIAlertView");
// 设置提示对话上的内容,这里的方法名称中必须包含':'字符
plus.ios.invoke(view,"initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:"
, "自定义标题" // 提示框标题
, "使用NJS的原生弹出框,可自定义弹出框的标题、按钮" // 提示框上显示的内容
, null // 操作提示框后的通知代理对象,暂不设置
, "确定(或者其他字符)" // 提示框上取消按钮的文字
, null ); // 提示框上其它按钮的文字,设置为null表示不显示
// 调用show方法显示提示对话框,在JS中使用()语法调用对象的方法
plus.ios.invoke(view,"show");
}, false );
网友评论