Cordova Plugin to allow message exchange between javascript and native (and viceversa).
Broadcaster plugin providing bridge for the following native technologies:
target OS | Native Technology |
---|---|
IOS | NotificationCenter |
Android | LocalBroadcastManager |
Jan 28, 2017 | such plugin has been added to ionic-native distribution | How to is available here |
---|
$ cordova create <PATH> [ID [NAME [CONFIG]]] [options]
$ cd <PATH>
$ cordova platform add [ios|android]
$ cordova plugin add cordova-plugin-broadcaster
console.log( "register didShow received!" );
var listener = function( e ) {
//log: didShow received! userInfo: {"data":"test"}
console.log( "didShow received! userInfo: " + JSON.stringify(e) );
}
window.broadcaster.addEventListener( "didShow", listener);
[[NSNotificationCenter defaultCenter] postNotificationName:@"didShow"
object:nil
userInfo:@{ @"data":@"test"}];
let nc = NSNotificationCenter.defaultCenter()
nc.postNotificationName("didShow",
object: nil,
userInfo: ["data":"test"])
let nc = NSNotificationCenter.default
nc.post(name:"didShow", object: nil, userInfo: ["data":"test"])
final Intent intent = new Intent("didShow");
Bundle b = new Bundle();
b.putString( "userdata", "{ data: 'test'}" );
intent.putExtras( b);
LocalBroadcastManager.getInstance(this).sendBroadcastSync(intent);
window.broadcaster.fireNativeEvent( "test.event", { item:'test data' }, function() {
console.log( "event fired!" );
} );
[[NSNotificationCenter defaultCenter] addObserverForName:@"test.event"
object:nil
queue:[NSOperationQueue mainQueue]
usingBlock:^(NSNotification *notification) {
NSLog(@"Handled 'test.event' [%@]", notification.userInfo[@"item"]);
}];
let nc = NSNotificationCenter.defaultCenter()
nc.addObserverForName("test.event",
object: nil,
queue:nil ) {
notification in
print( "\(notification.userInfo)")
}
let nc = NotificationCenter.default
nc.addObserver(forName:Notification.Name(rawValue:"test.event"),
object:nil, queue:nil) {
notification in
print( "\(notification.userInfo)")
}
final BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
try {
final JSONObject data = new JSONObject( intent.getExtras().getString("userdata"));
Log.d("CDVBroadcaster",
String.format("Native event [%s] received with data [%s]", intent.getAction(), String.valueOf(data)));
} catch (JSONException e) {
throw new RuntimeException(e);
}
}
};
LocalBroadcastManager.getInstance(this)
.registerReceiver(receiver, new IntentFilter("test.event"));
}