You should define your share() method inside JSInterface class
Here's the solution:
//1) init your webView and set interface
void initWebView(){
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(this, "JSInterface");
}
//2) Wrap js function call into interface like so
void callJsFunction(){
webView.loadUrl("javascript:JSInterface.onShare( shareFunction(){} );");
}
//3) Define your interface class and catch the callback
class JSInterface{
@JavascriptInterface
public void onShare() {
//catch the callback
Log.i(getClass().getSimpleName(), "Share button");
String textShare = promo.getShareTitle() + " " + promo.getShareUrl();
Intent i = Utils.shareContentIntent(this,textShare, promo.getShareTitle());
startActivity(i);
}
}