Web code:
HTML Code :
@Utility.GetDisplayName(Utility.ResourceKey.lblClicktoApp)
Jquery :
var model = {
"_id": nationalid,//if need to send as argument
"btnId":"btnsubmit"
};
function getValues() {
document.getElementById("btnsubmit").value = _id
}
document.getElementById("btnsubmit").addEventListener("click", function () {
webkit.messageHandlers.callbackHandler.postMessage(model);
});
Android:
act_webview_WebView.addJavascriptInterface(MyJavaScriptInterface(mContext),"ok")
act_webview_WebView!!.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
view?.loadUrl(url)
return true
}
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
try {
webview_progressBar.visibility = View.VISIBLE
} catch (e: Exception) {
e.printStackTrace()
}
}
override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
try {
webview_progressBar.visibility = View.GONE
} catch (e: Exception) {
e.printStackTrace()
}
}
override fun onReceivedError(
view: WebView?,
request: WebResourceRequest?,
error: WebResourceError?
) {
super.onReceivedError(view, request, error)
try {
webview_progressBar.visibility = View.GONE
} catch (e: Exception) {
e.printStackTrace()
}
}
}
act_webview_WebView!!.loadUrl(URL)
act_webview_WebView.addJavascriptInterface(new Object()
{
@JavascriptInterface
public void performClick()
{
Log.d("LOGIN::", "Clicked");
Toast.makeText(MainActivity.this, "Login clicked", Toast.LENGTH_LONG).show();
}
}, "login");
Proguard :
# For webview
#Start
#-keep class * extends android.webkit.WebChromeClient { *; }
#-dontwarn im.delight.android.webview.*
-keep class android.support.v8.renderscript.** { *; }
-keepclassmembers class apppackage.WebviewFragments {
public *;
}
-dontwarn
-keepattributes Signature
-keepattributes SetJavaScriptEnabled
-keepattributes JavascriptInterface
-keepattributes InlinedApi
-keepattributes SourceFile,LineNumberTable
-keepattributes *Annotation*
-keepclassmembers class * {
@android.webkit.JavascriptInterface ;
}
-keepclassmembers class * {
@android.webkit.JavascriptInterface ;
}
-keepclassmembers class **.*$MyJavaScriptInterface {
*;
}
-keepclassmembers class **.*$JavaScriptInterface {
*;
}
-keep public class **.*$MyJavaScriptInterface
-keep public class **.*$JavaScriptInterface
#END