package mobi.monaca.framework;
import org.apache.cordova.CordovaChromeClient;
import org.apache.cordova.CordovaWebView;
import org.apache.cordova.api.CordovaInterface;
import android.util.Log;
import android.webkit.JsPromptResult;
import android.webkit.JsResult;
import android.webkit.WebView;
public class MonacaChromeClient extends CordovaChromeClient {
private static final String TAG = MonacaChromeClient.class.getSimpleName();
private CordovaInterface cordova;
public MonacaChromeClient(CordovaInterface ctx) {
super(ctx);
this.cordova = ctx;
}
public MonacaChromeClient(CordovaInterface ctx, CordovaWebView webView) {
super(ctx, webView);
this.cordova = ctx;
}
@Override
public boolean onJsPrompt(WebView webView, String url, String message, String defaultValue, JsPromptResult jsPromtResult) {
if (url.equalsIgnoreCase("uri")) {
return true;
}
return super.onJsPrompt(webView, url, message, defaultValue, jsPromtResult);
}
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
if (cordova.getActivity().isFinishing()) {
Log.w(TAG, "Trying to show alert dialog while activity is finishing!! -> ignore");
result.cancel();
return true;
}
return super.onJsAlert(view, url, message, result);
}
@Override
public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
if (cordova.getActivity().isFinishing()) {
Log.w(TAG, "Trying to show confirm dialog while activity is finishing!! -> ignore");
result.cancel();
return true;
}
return super.onJsConfirm(view, url, message, result);
}
}