Yet another js bridge for Android.
- Web Side
window.JB.postMessage(
name = "share",
payload = "Hi, I share a JB to you.",
callback = function(response) {
console.log(response);
}
);- Native Side
@Name(value = "share")
class ShareBridge : JB {
override fun handleJsPostMessage(webView: WebView, payload: String, callback: Callback) {
// Invokes native android sharing
val sendIntent: Intent = Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, payload)
type = "text/plain"
}
val shareIntent = Intent.createChooser(sendIntent, null)
webView.context.startActivity(shareIntent, null)
callback("Thank you share me a JB, I love it.")
}
}- Native Side
webView.postMessage(
name = "post_bt_rssi",
payload = "-50",
callback = { response -> Log.d(TAG, "post_bt_rssi resp: $response") }
)- Web Side
window.JB.addNativeMessageListener((name, payload, callback) => {
console.log("receive native post message", name, JSON.stringify(payload));
if (name === "post_bt_rssi") {
callback("okay");
}
});That's it, enjoy JB!