80 lines
2.6 KiB
Java
80 lines
2.6 KiB
Java
package com.cradle.iitc_mobile;
|
|
|
|
import android.webkit.ConsoleMessage;
|
|
import android.webkit.GeolocationPermissions;
|
|
import android.webkit.JsPromptResult;
|
|
import android.webkit.JsResult;
|
|
import android.webkit.WebChromeClient;
|
|
import android.webkit.WebView;
|
|
|
|
/**
|
|
* Created by cradle on 12/21/13.
|
|
*/
|
|
public class IITC_WebChromeClient extends WebChromeClient {
|
|
|
|
private final IITC_Mobile mIitc;
|
|
|
|
public IITC_WebChromeClient(final IITC_Mobile iitc) {
|
|
mIitc = iitc;
|
|
}
|
|
|
|
/**
|
|
* our webchromeclient should share geolocation with the iitc script
|
|
*
|
|
* allow access by default
|
|
*/
|
|
@Override
|
|
public void onGeolocationPermissionsShowPrompt(final String origin, final GeolocationPermissions.Callback callback) {
|
|
callback.invoke(origin, true, false);
|
|
}
|
|
|
|
/**
|
|
* display progress bar in activity
|
|
*/
|
|
@Override
|
|
public void onProgressChanged(final WebView view, final int newProgress) {
|
|
super.onProgressChanged(view, newProgress);
|
|
|
|
// maximum for newProgress is 100
|
|
// maximum for setProgress is 10,000
|
|
mIitc.setProgress(newProgress * 100);
|
|
}
|
|
|
|
/**
|
|
* remove splash screen if any JS error occurs
|
|
*/
|
|
@Override
|
|
public boolean onConsoleMessage(final ConsoleMessage message) {
|
|
if (message.messageLevel() == ConsoleMessage.MessageLevel.ERROR) {
|
|
mIitc.setLoadingState(false);
|
|
}
|
|
|
|
if (Log.log(message))
|
|
return true; // message was handled
|
|
|
|
return super.onConsoleMessage(message);
|
|
}
|
|
|
|
@Override
|
|
public boolean onJsAlert(final WebView view, final String url, final String message, final JsResult result) {
|
|
return new IITC_JsDialogHelper(IITC_JsDialogHelper.ALERT, view, url, message, null, result).shouldInterrupt();
|
|
}
|
|
|
|
@Override
|
|
public boolean onJsBeforeUnload(final WebView view, final String url, final String message, final JsResult result) {
|
|
return new IITC_JsDialogHelper(IITC_JsDialogHelper.UNLOAD, view, url, message, null, result).shouldInterrupt();
|
|
}
|
|
|
|
@Override
|
|
public boolean onJsConfirm(final WebView view, final String url, final String message, final JsResult result) {
|
|
return new IITC_JsDialogHelper(IITC_JsDialogHelper.CONFIRM, view, url, message, null, result).shouldInterrupt();
|
|
}
|
|
|
|
@Override
|
|
public boolean onJsPrompt(final WebView view, final String url, final String message, final String defaultValue,
|
|
final JsPromptResult result) {
|
|
return new IITC_JsDialogHelper(IITC_JsDialogHelper.PROMPT, view, url, message, defaultValue, result)
|
|
.shouldInterrupt();
|
|
}
|
|
}
|