下面列出了怎么用android.webkit.ConsoleMessage的API类实例代码及写法,或者点击链接到github查看源代码。
@SuppressLint("JavascriptInterface")
public void get(Context context, final String js, final OnDone onDone){
this.onDone = onDone;
webView = new WebView(context);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient(){
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
System.out.println(consoleMessage.message());
String msg = consoleMessage.message().toLowerCase();
if (msg.contains("sources is not defined")){
destroyWebView();
onDone.result(null);
}else if (consoleMessage.message().toLowerCase().contains("error")){
destroyWebView();
System.out.println("Retry");
onDone.retry();
}
return super.onConsoleMessage(consoleMessage);
}
});
webView.addJavascriptInterface(new MyInterface(),"xGetter");
inject(js);
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
String tag = "Capacitor/Console";
if (consoleMessage.message() != null && isValidMsg(consoleMessage.message())) {
String msg = String.format("File: %s - Line %d - Msg: %s" , consoleMessage.sourceId() , consoleMessage.lineNumber(), consoleMessage.message());
String level = consoleMessage.messageLevel().name();
if ("ERROR".equalsIgnoreCase(level)) {
Log.e(tag, msg);
} else if ("WARNING".equalsIgnoreCase(level)) {
Log.w(tag, msg);
} else if ("TIP".equalsIgnoreCase(level)) {
Log.d(tag, msg);
} else {
Log.i(tag, msg);
}
}
return true;
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
Boolean returnValue = false;
if (shouldCallSuper("onConsoleMessage")) {
returnValue = super.onConsoleMessage(consoleMessage);
}
if (shouldSendEvent("onConsoleMessage")) {
String message = "";
if (consoleMessage != null) {
message = consoleMessage.message();
}
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.WEBPLAYER, WebPlayerEvent.CONSOLE_MESSAGE, message, viewId);
}
if (hasReturnValue("onConsoleMessage")) {
returnValue = getReturnValue("onConsoleMessage", java.lang.Boolean.class, true);
}
return returnValue;
}
public CustomWebView(Context context) {
super(context);
this.webView = new WebView(context);
this.webView.getSettings().setJavaScriptEnabled(true);
addView(this.webView);
this.webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsPrompt(WebView view, String url,
String message, String defaultValue, JsPromptResult result) {
if (callback != null) {
callback.onResult(message, new PromptResultImpl(result));
}
return true;
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
Log.d(JsBridge.TAG, consoleMessage.message());
return true;
}
});
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
String msg = consoleMessage.message();
if (msg == null)
return false;
Uri uri = Uri.parse(msg);
if (uri != null && null != uri.getScheme() && uri.getScheme().equals(SMALL_SCHEME))
{
String host = uri.getHost();
String ret = uri.getQueryParameter(SMALL_QUERY_KEY_RET);
if (host.equals(SMALL_HOST_POP)) {
WebActivity activity = mWebView.getActivity();
if (activity != null) {
activity.finish(ret);
}
} else if (host.equals(SMALL_HOST_EXEC)) {
if (mWebView.mOnResultListener != null) {
mWebView.mOnResultListener.onResult(ret);
}
}
return true;
}
Log.d(consoleMessage.sourceId(),
"line" + consoleMessage.lineNumber() + ": " + consoleMessage.message());
return true;
}
public boolean onConsoleMessage(ConsoleMessage consolemessage)
{
Log.i("WebConsole", (new StringBuilder()).append(consolemessage.message()).append(" -- From 111 line ").append(consolemessage.lineNumber()).append(" of ").append(consolemessage.sourceId()).toString());
if (android.os.Build.VERSION.SDK_INT > 7)
{
d d1 = a;
String s;
if (consolemessage == null)
{
s = "";
} else
{
s = consolemessage.message();
}
d1.onConsoleMessage(s);
}
return true;
}
/**
* Constructor
*
* @param parentActivity the parent activity of the web-view, which will
* be used as a context
*/
public SoomlaTwitterWebView(Activity parentActivity) {
super(parentActivity);
this.getSettings().setJavaScriptEnabled(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
this.getSettings().setAllowUniversalAccessFromFileURLs(true);
}
this.mHandler = new Handler(Looper.getMainLooper());
this.setWebChromeClient(new WebChromeClient() {
public boolean onConsoleMessage(ConsoleMessage cm) {
Log.d(TAG, cm.message() + " -- From line " + cm.lineNumber() + " of " + cm.sourceId());
return true;
}
});
this.setBackgroundColor(0x00000000);
this.mTranslucent = true;
postInvalidate();
}
@Override
public boolean onConsoleMessage(@NonNull ConsoleMessage message) {
switch (message.messageLevel()) {
case TIP:
Log.v(TAG, message.message());
break;
case LOG:
Log.i(TAG, message.message());
break;
case WARNING:
Log.w(TAG, message.message());
break;
case ERROR:
Log.e(TAG, message.message());
break;
case DEBUG:
Log.d(TAG, message.message());
break;
}
if (null != mConsoleMonitor) {
mConsoleMonitor.onConsoleMessage(message);
}
return true;
}
@Override
public boolean addMessageToConsole(int level, String message, int lineNumber,
String sourceId) {
ConsoleMessage.MessageLevel messageLevel = ConsoleMessage.MessageLevel.DEBUG;
switch(level) {
case LOG_LEVEL_TIP:
messageLevel = ConsoleMessage.MessageLevel.TIP;
break;
case LOG_LEVEL_LOG:
messageLevel = ConsoleMessage.MessageLevel.LOG;
break;
case LOG_LEVEL_WARNING:
messageLevel = ConsoleMessage.MessageLevel.WARNING;
break;
case LOG_LEVEL_ERROR:
messageLevel = ConsoleMessage.MessageLevel.ERROR;
break;
default:
Log.w(TAG, "Unknown message level, defaulting to DEBUG");
break;
}
return mContentsClient.onConsoleMessage(
new ConsoleMessage(message, sourceId, lineNumber, messageLevel));
}
@Override
public boolean addMessageToConsole(int level, String message, int lineNumber,
String sourceId) {
ConsoleMessage.MessageLevel messageLevel = ConsoleMessage.MessageLevel.DEBUG;
switch(level) {
case LOG_LEVEL_TIP:
messageLevel = ConsoleMessage.MessageLevel.TIP;
break;
case LOG_LEVEL_LOG:
messageLevel = ConsoleMessage.MessageLevel.LOG;
break;
case LOG_LEVEL_WARNING:
messageLevel = ConsoleMessage.MessageLevel.WARNING;
break;
case LOG_LEVEL_ERROR:
messageLevel = ConsoleMessage.MessageLevel.ERROR;
break;
default:
Log.w(TAG, "Unknown message level, defaulting to DEBUG");
break;
}
return mContentsClient.onConsoleMessage(
new ConsoleMessage(message, sourceId, lineNumber, messageLevel));
}
@TargetApi(8)
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage)
{
if (consoleMessage.message() != null)
LOG.d(LOG_TAG, "%s: Line %d : %s" , consoleMessage.sourceId() , consoleMessage.lineNumber(), consoleMessage.message());
return super.onConsoleMessage(consoleMessage);
}
@TargetApi(8)
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage)
{
if (consoleMessage.message() != null)
LOG.d(LOG_TAG, "%s: Line %d : %s" , consoleMessage.sourceId() , consoleMessage.lineNumber(), consoleMessage.message());
return super.onConsoleMessage(consoleMessage);
}
@TargetApi(8)
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage)
{
if (consoleMessage.message() != null)
LOG.d(LOG_TAG, "%s: Line %d : %s" , consoleMessage.sourceId() , consoleMessage.lineNumber(), consoleMessage.message());
return super.onConsoleMessage(consoleMessage);
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
/*onConsoleMessage(consoleMessage.message(), consoleMessage.lineNumber(),
consoleMessage.sourceId());*/
if (this.mDelegate != null) {
return this.mDelegate.onConsoleMessage(consoleMessage);
}
return super.onConsoleMessage(consoleMessage);
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
if (originalWebChromeClient != null) {
return originalWebChromeClient.onConsoleMessage(consoleMessage);
}
return true;
}
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
if (consoleMessage == null) {
return false;
}
f.c("WebConsole", consoleMessage.message() + " -- From 111 line " + consoleMessage.lineNumber() + " of " + consoleMessage.sourceId());
if (VERSION.SDK_INT > 7) {
this.a.onConsoleMessage(consoleMessage == null ? "" : consoleMessage.message());
}
return true;
}
public final boolean onConsoleMessage(ConsoleMessage consoleMessage) {
String message = consoleMessage.message();
if (TextUtils.isEmpty(message)) {
return super.onConsoleMessage(consoleMessage);
}
Object obj = null;
if (message.startsWith("h5container.message: ")) {
obj = message.replaceFirst("h5container.message: ", "");
}
if (TextUtils.isEmpty(obj)) {
return super.onConsoleMessage(consoleMessage);
}
AuthActivity.b(this.a, obj);
return super.onConsoleMessage(consoleMessage);
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage)
{
if (consoleMessage.message() != null)
LOG.d(LOG_TAG, "%s: Line %d : %s" , consoleMessage.sourceId() , consoleMessage.lineNumber(), consoleMessage.message());
return super.onConsoleMessage(consoleMessage);
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage)
{
if (consoleMessage.message() != null)
LOG.d(LOG_TAG, "%s: Line %d : %s" , consoleMessage.sourceId() , consoleMessage.lineNumber(), consoleMessage.message());
return super.onConsoleMessage(consoleMessage);
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage){
if ("Scripts may close only the windows that were opened by it.".equals(consoleMessage.message())) {
if (mPlayer.getContext() instanceof WebPlayerActivity) {
((WebPlayerActivity) mPlayer.getContext()).finish();
}
}
return super.onConsoleMessage(consoleMessage);
}
@Override
public boolean onConsoleMessage(final ConsoleMessage cm) {
super.onConsoleMessage(cm);
String msg = cm.message() + ", From line " + cm.lineNumber() + " of " +
cm.sourceId();
return FolioWebView.onWebViewConsoleMessage(cm, "WebViewConsole", msg);
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
if (consoleMessage.message().startsWith(HtmlUtils.JS_RESULT_PREFIX)) {
synchronized(htmlUtils) {
htmlUtils.setJSResult(consoleMessage.message().replaceFirst(HtmlUtils.JS_RESULT_PREFIX, ""));
htmlUtils.notify();
}
}
if (originalWebChromeClient != null) {
return originalWebChromeClient.onConsoleMessage(consoleMessage);
} else {
return super.onConsoleMessage(consoleMessage);
}
}
@TargetApi(8)
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage)
{
if (consoleMessage.message() != null)
LOG.d(LOG_TAG, "%s: Line %d : %s" , consoleMessage.sourceId() , consoleMessage.lineNumber(), consoleMessage.message());
return super.onConsoleMessage(consoleMessage);
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
String message = "";
message += "\"" + consoleMessage.message() + "\"";
String source = consoleMessage.sourceId();
if (source != null) {
int cut = source.lastIndexOf('/');
if (cut != -1) {
source = source.substring(cut + 1);
}
message += ", [" + source + "]";
}
message += ", (" + consoleMessage.lineNumber() + ")";
ConsoleMessage.MessageLevel level = consoleMessage.messageLevel();
if (level == ConsoleMessage.MessageLevel.DEBUG) {
Log.d(CONSOLE_TAG, message);
} else if (level == ConsoleMessage.MessageLevel.ERROR) {
Log.e(CONSOLE_TAG, message);
} else if (level == ConsoleMessage.MessageLevel.WARNING) {
Log.w(CONSOLE_TAG, message);
} else if (level == ConsoleMessage.MessageLevel.LOG || level == ConsoleMessage.MessageLevel.TIP) {
Log.i(CONSOLE_TAG, message);
} else {
Log.d(CONSOLE_TAG, message);
}
return true;
}
@Override
public boolean onConsoleMessage(final ConsoleMessage consoleMessage) {
if (consoleMessage.messageLevel() == ConsoleMessage.MessageLevel.ERROR) {
final boolean errorHandled = chatWindowListener != null && chatWindowListener.onError(ChatWindowErrorType.Console, -1, consoleMessage.message());
post(new Runnable() {
@Override
public void run() {
onErrorDetected(errorHandled, ChatWindowErrorType.Console, -1, consoleMessage.message());
}
});
}
Log.i("ChatWindowView", "onConsoleMessage" + consoleMessage.messageLevel().name() + " " + consoleMessage.message());
return super.onConsoleMessage(consoleMessage);
}
@TargetApi(8)
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage)
{
if (consoleMessage.message() != null)
LOG.d(LOG_TAG, "%s: Line %d : %s" , consoleMessage.sourceId() , consoleMessage.lineNumber(), consoleMessage.message());
return super.onConsoleMessage(consoleMessage);
}
@TargetApi(8)
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage)
{
if (consoleMessage.message() != null)
LOG.d(TAG, "%s: Line %d : %s" , consoleMessage.sourceId() , consoleMessage.lineNumber(), consoleMessage.message());
return super.onConsoleMessage(consoleMessage);
}
@TargetApi(8)
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage)
{
if (consoleMessage.message() != null)
LOG.d(TAG, "%s: Line %d : %s" , consoleMessage.sourceId() , consoleMessage.lineNumber(), consoleMessage.message());
return super.onConsoleMessage(consoleMessage);
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage)
{
// we MUST return true we are done with debugging
return !mEnableConsoleLog; // return false to enable console.log
}
@TargetApi(8)
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage)
{
if (consoleMessage.message() != null)
LOG.d(LOG_TAG, "%s: Line %d : %s" , consoleMessage.sourceId() , consoleMessage.lineNumber(), consoleMessage.message());
return super.onConsoleMessage(consoleMessage);
}