下面列出了怎么用android.webkit.JsResult的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
// This if block can be dropped
if (!FolioPageFragment.this.isVisible())
return true;
if (TextUtils.isDigitsOnly(message)) {
try {
mTotalMinutes = Integer.parseInt(message);
} catch (NumberFormatException e) {
mTotalMinutes = 0;
}
} else {
// to handle TTS playback when highlight is deleted.
Pattern p = Pattern.compile("[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}");
if (!p.matcher(message).matches() && (!message.equals("undefined")) && isCurrentFragment()) {
mediaController.speakAudio(message);
}
}
result.confirm();
return true;
}
/**
* Show the browser alert modal
* @param view
* @param url
* @param message
* @param result
* @return
*/
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
if (bridge.getActivity().isFinishing()) {
return true;
}
Dialogs.alert(view.getContext(), message, new Dialogs.OnResultListener() {
@Override
public void onResult(boolean value, boolean didCancel, String inputValue) {
if(value) {
result.confirm();
} else {
result.cancel();
}
}
});
return true;
}
/**
* Show the browser confirm modal
* @param view
* @param url
* @param message
* @param result
* @return
*/
@Override
public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {
if (bridge.getActivity().isFinishing()) {
return true;
}
Dialogs.confirm(view.getContext(), message, new Dialogs.OnResultListener() {
@Override
public void onResult(boolean value, boolean didCancel, String inputValue) {
if(value) {
result.confirm();
} else {
result.cancel();
}
}
});
return true;
}
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
Boolean returnValue = false;
if (shouldCallSuper("onJsAlert")) {
returnValue = super.onJsAlert(view, url, message, result);
}
if (shouldSendEvent("onJsAlert")) {
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.WEBPLAYER, WebPlayerEvent.JS_ALERT, url, message, result, viewId);
}
if (hasReturnValue("onJsAlert")) {
returnValue = getReturnValue("onJsAlert", java.lang.Boolean.class, true);
}
return returnValue;
}
@Override
public boolean onJsConfirm(WebView view, final String url, final String message, final JsResult result) {
if (!isDestroyed()) {
AlertDialog.Builder builder1 = new AlertDialog.Builder(PrivateActivity.this);
builder1.setTitle(R.string.app_name);
builder1.setMessage(message);
builder1.setCancelable(true);
builder1.setPositiveButton(R.string.ok, (dialog, id) -> {
result.confirm();
dialog.dismiss();
});
builder1.setNegativeButton(R.string.cancel, (dialog, id) -> {
result.cancel();
dialog.dismiss();
});
AlertDialog alert11 = builder1.create();
alert11.show();
}
return true;
}
@Override
public boolean onJsConfirm(WebView view, final String url, final String message, final JsResult result) {
if (!isDestroyed()) {
AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this);
builder1.setTitle(R.string.app_name);
builder1.setMessage(message);
builder1.setCancelable(true);
builder1.setPositiveButton(R.string.ok, (dialog, id) -> {
result.confirm();
dialog.dismiss();
});
builder1.setNegativeButton(R.string.cancel, (dialog, id) -> {
result.cancel();
dialog.dismiss();
});
AlertDialog alert11 = builder1.create();
alert11.show();
}
return true;
}
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
if (!((EBrowserActivity) view.getContext()).isVisable()) {
result.confirm();
}
AlertDialog.Builder dia = new AlertDialog.Builder(view.getContext());
dia.setTitle(EUExUtil.getResStringID("prompt"));
dia.setMessage(message);
dia.setCancelable(false);
dia.setPositiveButton(EUExUtil.getResStringID("confirm"), new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
});
dia.create();
dia.show();
return true;
}
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
if (!(view instanceof PowerfulWebView))
return super.onJsAlert(view, url, message, result);
final ArrayList<JavascriptInterfaceHelper> helpers = ((PowerfulWebView) view).mHelpers;
if (helpers.isEmpty())
return super.onJsAlert(view, url, message, result);
boolean response = false;
for (JavascriptInterfaceHelper helper : helpers) {
if (helper.getSupportType() == JavascriptInterfaceHelper.SUPPORT_TYPE_COMPAT) {
response = true;
helper.onReceiveValue(message);
}
}
if (response) {
result.cancel();
return true;
}
return super.onJsAlert(view, url, message, result);
}
/**
* Tell the client to display a javascript alert dialog.
*/
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
dialogsHelper.showAlert(message, new CordovaDialogsHelper.Result() {
@Override public void gotResult(boolean success, String value) {
if (success) {
result.confirm();
} else {
result.cancel();
}
}
});
return true;
}
/**
* Tell the client to display a confirm dialog to the user.
*/
@Override
public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {
dialogsHelper.showConfirm(message, new CordovaDialogsHelper.Result() {
@Override
public void gotResult(boolean success, String value) {
if (success) {
result.confirm();
} else {
result.cancel();
}
}
});
return true;
}
/**
* Tell the client to display a javascript alert dialog.
*/
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
dialogsHelper.showAlert(message, new CordovaDialogsHelper.Result() {
@Override public void gotResult(boolean success, String value) {
if (success) {
result.confirm();
} else {
result.cancel();
}
}
});
return true;
}
/**
* Tell the client to display a confirm dialog to the user.
*/
@Override
public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {
dialogsHelper.showConfirm(message, new CordovaDialogsHelper.Result() {
@Override
public void gotResult(boolean success, String value) {
if (success) {
result.confirm();
} else {
result.cancel();
}
}
});
return true;
}
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
Snackbar.make(view, message, Snackbar.LENGTH_LONG)
.setAction("确定", new View.OnClickListener() {
@Override
public void onClick(View v) {
result.confirm();
}
}).show();
return true;
}
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
new AlertDialog.Builder(view.getContext())
.setMessage(message)
.setPositiveButton(android.R.string.ok, (dialog, which) -> result.confirm())
.setOnCancelListener(dialog -> result.cancel())
.show();
return true;
}
@Override
public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
new AlertDialog.Builder(view.getContext())
.setMessage(message)
.setPositiveButton(android.R.string.ok, (dialog, which) -> result.confirm())
.setNegativeButton(android.R.string.cancel, (dialog, which) -> result.cancel())
.setOnCancelListener(dialog -> result.cancel())
.show();
return true;
}
/**
* 弹出警告框
*/
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
if (mActivity == null) {
return super.onJsAlert(view, url, message, result);
} else {
new ToastDialog.Builder(mActivity)
.setType(ToastDialog.Type.WARN)
.setMessage(message)
.addOnDismissListener(dialog -> result.confirm())
.show();
return true;
}
}
/**
* Tell the client to display a confirm dialog to the user.
*/
@Override
public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {
dialogsHelper.showConfirm(message, new CordovaDialogsHelper.Result() {
@Override
public void gotResult(boolean success, String value) {
if (success) {
result.confirm();
} else {
result.cancel();
}
}
});
return true;
}
/**
* Tell the client to display a javascript alert dialog.
*/
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
dialogsHelper.showAlert(message, new CordovaDialogsHelper.Result() {
@Override public void gotResult(boolean success, String value) {
if (success) {
result.confirm();
} else {
result.cancel();
}
}
});
return true;
}
/**
* Tell the client to display a confirm dialog to the user.
*/
@Override
public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {
dialogsHelper.showConfirm(message, new CordovaDialogsHelper.Result() {
@Override
public void gotResult(boolean success, String value) {
if (success) {
result.confirm();
} else {
result.cancel();
}
}
});
return true;
}
@Override
public boolean onJsAlert(WebView view, String url, String message,
JsResult result) {
if (this.mDelegate != null) {
return this.mDelegate.onJsAlert(view, url, message, result);
}
return super.onJsAlert(view, url, message, result);
}
@Override
public boolean onJsConfirm(WebView view, String url, String message,
JsResult result) {
if (this.mDelegate != null) {
return this.mDelegate.onJsConfirm(view, url, message, result);
}
return super.onJsConfirm(view, url, message, result);
}
@Override
public boolean onJsBeforeUnload(WebView view, String url, String message,
JsResult result) {
if (this.mDelegate != null) {
return this.mDelegate.onJsBeforeUnload(view, url, message, result);
}
return super.onJsBeforeUnload(view, url, message, result);
}
/**
* Tell the client to display a javascript alert dialog.
*/
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
dialogsHelper.showAlert(message, new CordovaDialogsHelper.Result() {
@Override public void gotResult(boolean success, String value) {
if (success) {
result.confirm();
} else {
result.cancel();
}
}
});
return true;
}
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
if (mAgentWebUIController.get() != null) {
mAgentWebUIController.get().onJsAlert(view, url, message);
}
result.confirm();
return true;
}
@Override
public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
if (mAgentWebUIController.get() != null) {
mAgentWebUIController.get().onJsConfirm(view, url, message, result);
}
return true;
}
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
if (originalWebChromeClient != null) {
return originalWebChromeClient.onJsAlert(view, url, message, result);
}
return true;
}
@Override
public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
if (originalWebChromeClient != null) {
return originalWebChromeClient.onJsConfirm(view, url, message, result);
}
return true;
}
/**
* Tell the client to display a javascript alert dialog.
*/
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
dialogsHelper.showAlert(message, new CordovaDialogsHelper.Result() {
@Override public void gotResult(boolean success, String value) {
if (success) {
result.confirm();
} else {
result.cancel();
}
}
});
return true;
}
/**
* Tell the client to display a confirm dialog to the user.
*/
@Override
public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {
dialogsHelper.showConfirm(message, new CordovaDialogsHelper.Result() {
@Override
public void gotResult(boolean success, String value) {
if (success) {
result.confirm();
} else {
result.cancel();
}
}
});
return true;
}
/**
* Tell the client to display a javascript alert dialog.
*/
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
dialogsHelper.showAlert(message, new CordovaDialogsHelper.Result() {
@Override public void gotResult(boolean success, String value) {
if (success) {
result.confirm();
} else {
result.cancel();
}
}
});
return true;
}