悟之行
悟之行
  • 发布:2015-05-14 16:58
  • 更新:2016-10-08 12:58
  • 阅读:2605

Native.JS回调怎么实现

分类:Native.js

Java代码

// 注册广播接收器,接收并处理搜索结果
context.registerReceiver(receiver, intentFilter);

// 下面是要回调的函数
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
System.out.println(device.getName());
}
}
}

这里的receiver参数怎么传递? 还有下面的回调函数用Js怎么写?

2015-05-14 16:58 负责人:无 分享
已邀请:
s***@qq.com

s***@qq.com

这个正是需要了解的问题之一,结果一年多了,也没有人回答下的

赵梦欢

赵梦欢 - 专注前端,乐于分享!

var main = plus.android.runtimeMainActivity();  
var BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");  
var BAdapter = new BluetoothAdapter.getDefaultAdapter();  

// 启动蓝牙  
if (!BAdapter.isEnabled()) {  
    BAdapter.enable();   
}else{  
    BAdapter.disable();  
}  

// 新建BroadcastReceiver广播对象  
var receiver = plus.android.implements('io.dcloud.android.content.BroadcastReceiver', {  
    // 实现onReceiver回调函数  
    'onReceive': function(context, intent) {  
        plus.android.importClass(intent);  
        var action = intent.getAction();  
        var BluetoothDevice = plus.android.importClass("android.bluetooth.BluetoothDevice");  
        // 当设备开始扫描时   
        if (BluetoothDevice.ACTION_FOUND === action) {   
            // 从Intent得到blueDevice对象   
            var device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);           
            console.log("name:"+device.getName());      
        }    
        main.unregisterReceiver(receiver);  
    }  
});  

// 注册开始发现广播  
var IntentFilter = plus.android.importClass('android.content.IntentFilter');  
var filter = new IntentFilter();  
filter.addAction(BAdapter.ACTION_STATE_CHANGED); //监听蓝牙开关  
main.registerReceiver(receiver, filter); //注册监听
s***@qq.com

s***@qq.com

关键点是不是要加上前缀:io.dcloud 啊?
而不直接使用 'android.content.BroadcastReceiver' ?

应该是使用 'io.dcloud.android.content.BroadcastReceiver' 这个吗?

是不是其他的类似情况也要这么使用啊?谢谢

该问题目前已经被锁定, 无法添加新回复