Java 类android.webkit.ValueCallback 实例源码
项目:RNLearn_Project1
文件:ReactWebViewManager.java
public void linkBridge() {
if (messagingEnabled) {
if (ReactBuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// See isNative in lodash
String testPostMessageNative = "String(window.postMessage) === String(Object.hasOwnProperty).replace('hasOwnProperty', 'postMessage')";
evaluateJavascript(testPostMessageNative, new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
if (value.equals("true")) {
FLog.w(ReactConstants.TAG, "Setting onMessage on a WebView overrides existing values of window.postMessage, but a previous value was defined");
}
}
});
}
loadUrl("javascript:(" +
"window.originalPostMessage = window.postMessage," +
"window.postMessage = function(data) {" +
BRIDGE_NAME + ".postMessage(String(data));" +
"}" +
")");
}
}
项目:GitHub
文件:MyWebChromeClient.java
private void openFileChooserImplForAndroid5(ValueCallback<Uri[]> uploadMsg) {
mUploadMessageForAndroid5 = uploadMsg;
Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
contentSelectionIntent.setType("image/*");
Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
chooserIntent.putExtra(Intent.EXTRA_TITLE, "图片选择");
mActivity.startActivityForResult(chooserIntent, FILECHOOSER_RESULTCODE_FOR_ANDROID_5);
}
项目:GoSCELE
文件:WebViewClientUtil.java
@TargetApi(Build.VERSION_CODES.KITKAT)
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
if (url.contains("login/")) {
UserModel model = new UserModel().find().executeSingle();
if (model != null) {
webView.evaluateJavascript("(function() {document.getElementsByName('username')[0].value='" + model.username + "';document.getElementsByName('password')[0].value='" + model.password + "';document.getElementById('login').submit(); " +
"return { var1: \"variable1\", var2: \"variable2\" }; })();", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.d("authentication", "success");
}
});
}
}
}
项目:AgentWeb
文件:DefaultChromeClient.java
private boolean openFileChooserAboveL(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
LogUtils.i(TAG, "fileChooserParams:" + fileChooserParams.getAcceptTypes() + " getTitle:" + fileChooserParams.getTitle() + " accept:" + Arrays.toString(fileChooserParams.getAcceptTypes()) + " length:" + fileChooserParams.getAcceptTypes().length + " :" + fileChooserParams.isCaptureEnabled() + " " + fileChooserParams.getFilenameHint() + " intent:" + fileChooserParams.createIntent().toString()+" mode:"+fileChooserParams.getMode());
Activity mActivity = this.mActivityWeakReference.get();
if (mActivity == null || mActivity.isFinishing()) {
filePathCallback.onReceiveValue(new Uri[]{});
return false;
}
IFileUploadChooser mIFileUploadChooser = this.mIFileUploadChooser;
this.mIFileUploadChooser = mIFileUploadChooser = new FileUpLoadChooserImpl.Builder()
.setWebView(webView)
.setActivity(mActivity)
.setUriValueCallbacks(filePathCallback)
.setFileChooserParams(fileChooserParams)
.setFileUploadMsgConfig(mChromeClientMsgCfg.getFileUploadMsgConfig())
.setPermissionInterceptor(this.mPermissionInterceptor)
.build();
mIFileUploadChooser.openFileChooser();
return true;
}
项目:hybrid
文件:BaseWebActivity.java
/**
* 调用js串的时候 引用此方法 例:document.querySelectorAll('*[name=description]')[0].getAttribute('content')
*
* @param funtionName
* 需要传递的JS串
*/
protected String callJsDescription(final String funtionName) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
webView.evaluateJavascript(funtionName, new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.e("value", value);
content = value;
}
});
} else {
webView.loadUrl(funtionName);
}
}
});
return content;
}
项目:COEP-Moodle-via-Webview
文件:Moodle.java
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
final String password = profile.getString("password", null);
final String username = profile.getString("username", null);
if(profile.getString("username",null).equals("default") || profile.getString("password",null).equals("default"))
{
Toast.makeText(getApplicationContext(),"Enter your login details properly !",Toast.LENGTH_LONG).show();
Intent log = new Intent(Moodle.this,LoginActivity.class);
startActivity(log);
return;
}
final String js = "javascript:" +
"document.getElementById('password').value = '" + password + "';" +
"document.getElementById('username').value = '" + username + "';" +
"document.getElementById('loginbtn').click()";
if (Build.VERSION.SDK_INT >= 19) {
view.evaluateJavascript(js, new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
}
});
} else {
view.loadUrl(js);
}
}
项目:MyDemo
文件:MyWebChromeClient.java
private void openFileChooserImplForAndroid5(ValueCallback<Uri[]> uploadMsg) {
mUploadMessageForAndroid5 = uploadMsg;
Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
contentSelectionIntent.setType("image/*");
Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
chooserIntent.putExtra(Intent.EXTRA_TITLE, "图片选择");
mActivity.startActivityForResult(chooserIntent, FILECHOOSER_RESULTCODE_FOR_ANDROID_5);
}
项目:siiMobilityAppKit
文件:SystemWebViewEngine.java
@Override
public void evaluateJavascript(String js, ValueCallback<String> callback) {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
webView.evaluateJavascript(js, callback);
}
else
{
LOG.d(TAG, "This webview is using the old bridge");
}
}
项目:boohee_v5.6
文件:BrowserActivity.java
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
BrowserActivity.this.mUploadMessage = uploadMsg;
Intent i = new Intent("android.intent.action.GET_CONTENT");
i.addCategory("android.intent.category.OPENABLE");
i.setType("image/*");
BrowserActivity.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), 1);
}
项目:Blackboard
文件:AnnouncementsScraper.java
public AnnouncementsScraper(Blackboard blackboard) {
super(blackboard);
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
if (!isCancelled()) {
getBlackboard().getHtmlContent("announcementList", new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
JsonReader reader = new JsonReader(new StringReader(s));
reader.setLenient(true);
try {
if (reader.peek() != JsonToken.NULL) {
if (reader.peek() == JsonToken.STRING)
onComplete(reader.nextString());
}
} catch (Exception ignored) {
}
try {
reader.close();
} catch (IOException ignored) {
}
if (!isComplete()) {
onError(false);
handler.postDelayed(runnable, 1000);
}
}
});
}
}
};
}
项目:https-github.com-hyb1996-NoRootScriptDroid
文件:InjectableWebClient.java
@Override
public void onPageFinished(WebView view, String url) {
mWebView = view;
setUpWebView(view);
while (!mToInjectJavaScripts.isEmpty()) {
Pair<String, ValueCallback<String>> pair = mToInjectJavaScripts.poll();
inject(view, pair.first, pair.second);
}
super.onPageFinished(view, url);
}
项目:GankReader
文件:MyWebChromeClient.java
private void openFileChooserImplForAndroid5(ValueCallback<Uri[]> uploadMsg) {
mUploadMessageForAndroid5 = uploadMsg;
Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
contentSelectionIntent.setType("image/*");
Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
chooserIntent.putExtra(Intent.EXTRA_TITLE, "图片选择");
mActivity.startActivityForResult(chooserIntent, FILECHOOSER_RESULTCODE_FOR_ANDROID_5);
}
项目:boohee_v5.6
文件:BetBrowserFragment.java
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
BetBrowserFragment.this.mUploadMessage = uploadMsg;
Intent i = new Intent("android.intent.action.GET_CONTENT");
i.addCategory("android.intent.category.OPENABLE");
i.setType("image/*");
BetBrowserFragment.this.startActivityForResult(Intent.createChooser(i, "File " +
"Chooser"), 1);
}
项目:MyDemo
文件:MyWebChromeClient.java
private void openFileChooserImpl(ValueCallback<Uri> uploadMsg) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
mActivity.startActivityForResult(Intent.createChooser(i, "文件选择"), FILECHOOSER_RESULTCODE);
}
项目:Blackboard
文件:Blackboard.java
/**
* Sets an attribute of an element in the WebView
* @param id the element to apply the attribute to
* @param attribute the name of the attribute to change
* @param value the value to change the attribute to
*/
public void setAttribute(String id, String attribute, String value) {
webView.evaluateJavascript("(function(){document.getElementById('" + id + "')." + attribute + " = " + value + ";})();", new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
}
});
}
项目:RNLearn_Project1
文件:ForwardingCookieHandler.java
private void clearCookiesAsync(final Callback callback) {
getCookieManager().removeAllCookies(
new ValueCallback<Boolean>() {
@Override
public void onReceiveValue(Boolean value) {
mCookieSaver.onCookiesModified();
callback.invoke(value);
}
});
}
项目:AgentWeb
文件:JSAgentWebFragment.java
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.callJsNoParamsButton:
mAgentWeb.getJsEntraceAccess().quickCallJs("callByAndroid");
break;
case R.id.callJsOneParamsButton:
mAgentWeb.getJsEntraceAccess().quickCallJs("callByAndroidParam","Hello ! Agentweb");
break;
case R.id.callJsMoreParamsButton:
mAgentWeb.getJsEntraceAccess().quickCallJs("callByAndroidMoreParams", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.i("Info","value:"+value);
}
},getJson(),"say:", " Hello! Agentweb");
break;
case R.id.jsJavaCommunicationButton:
mAgentWeb.getJsEntraceAccess().quickCallJs("callByAndroidInteraction","你好Js");
break;
}
}
项目:AgentWeb
文件:BaseJsEntraceAccess.java
@Override
public void callJs(String js, final ValueCallback<String> callback) {
LogUtils.i(TAG,"method callJs:"+js);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
this.evaluateJs(js, callback);
} else {
this.loadJs(js);
}
}
项目:Blackboard
文件:UsernameScraper.java
public UsernameScraper(Blackboard blackboard) {
super(blackboard);
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
if (!isCancelled()) {
getBlackboard().getAttribute("global-nav-link", "innerText", new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
JsonReader reader = new JsonReader(new StringReader(s));
reader.setLenient(true);
try {
if (reader.peek() != JsonToken.NULL) {
if (reader.peek() == JsonToken.STRING)
onComplete(reader.nextString().replace("[0-9]", ""));
}
} catch (Exception ignored) {
}
try {
reader.close();
} catch (IOException ignored) {
}
if (!isComplete()) {
onError(false);
handler.postDelayed(runnable, 1000);
}
}
});
}
}
};
}
项目:AgentWeb
文件:BaseJsEntraceAccess.java
@Override
public void quickCallJs(String method, ValueCallback<String> callback,String... params) {
StringBuilder sb=new StringBuilder();
sb.append("javascript:"+method);
if(params==null||params.length==0){
sb.append("()");
}else{
sb.append("(").append(concat(params)).append(")");
}
callJs(sb.toString(),callback);
}
项目:Xndroid
文件:BrowserActivity.java
/**
* opens a file chooser
* param ValueCallback is the message from the WebView indicating a file chooser
* should be opened
*/
@Override
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("*/*");
startActivityForResult(Intent.createChooser(i, getString(R.string.title_file_chooser)), 1);
}
项目:keemob
文件:SystemWebViewEngine.java
@Override
public void evaluateJavascript(String js, ValueCallback<String> callback) {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
webView.evaluateJavascript(js, callback);
}
else
{
LOG.d(TAG, "This webview is using the old bridge");
}
}
项目:AgentWeb
文件:DefaultChromeClient.java
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
LogUtils.i(TAG, "openFileChooser>=5.0");
if (AgentWebUtils.isOverriedMethod(mWebChromeClient, "onShowFileChooser", ChromePath + ".onShowFileChooser", WebView.class, ValueCallback.class, FileChooserParams.class)) {
return super.onShowFileChooser(webView, filePathCallback, fileChooserParams);
}
return openFileChooserAboveL(webView, filePathCallback, fileChooserParams);
}
项目:XinFramework
文件:CookiesHandler.java
private static ValueCallback<Boolean> getDefaultIgnoreCallback() {
return new ValueCallback<Boolean>() {
@Override
public void onReceiveValue(Boolean ignore) {
Log.i("removeExpiredCookies:" + ignore);
}
};
}
项目:AgentWeb
文件:DefaultChromeClient.java
public void openFileChooser(ValueCallback valueCallback, String acceptType) {
Log.i(TAG, "openFileChooser>3.0");
if (AgentWebUtils.isOverriedMethod(mWebChromeClient, "openFileChooser", ChromePath + ".openFileChooser", ValueCallback.class, String.class)) {
super.openFileChooser(valueCallback, acceptType);
return;
}
createAndOpenCommonFileLoader(valueCallback, acceptType);
}
项目:AgentWeb
文件:FileUpLoadChooserImpl.java
public Builder setUriValueCallback(ValueCallback<Uri> uriValueCallback) {
mUriValueCallback = uriValueCallback;
isL = false;
jsChannel = false;
mUriValueCallbacks = null;
mJsChannelCallback = null;
return this;
}
项目:AgentWeb
文件:FileUpLoadChooserImpl.java
public Builder setUriValueCallbacks(ValueCallback<Uri[]> uriValueCallbacks) {
mUriValueCallbacks = uriValueCallbacks;
isL = true;
mUriValueCallback = null;
mJsChannelCallback = null;
jsChannel = false;
return this;
}
项目:AgentWeb
文件:JsEntraceAccessImpl.java
@Override
public void callJs(String params, final ValueCallback<String> callback) {
if (Thread.currentThread() != Looper.getMainLooper().getThread()) {
callSafeCallJs(params, callback);
return;
}
super.callJs(params,callback);
}
项目:AgentWebX5
文件:BaseJsEntraceAccess.java
private void evaluateJs(String js, final ValueCallback<String>callback){
mWebView.evaluateJavascript(js, new com.tencent.smtt.sdk.ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
if (callback != null)
callback.onReceiveValue(value);
}
});
}
项目:RNLearn_Project1
文件:ForwardingCookieHandler.java
private void clearCookiesAsync(final Callback callback) {
getCookieManager().removeAllCookies(
new ValueCallback<Boolean>() {
@Override
public void onReceiveValue(Boolean value) {
mCookieSaver.onCookiesModified();
callback.invoke(value);
}
});
}
项目:DinningShare
文件:SystemWebViewEngine.java
@Override
public void evaluateJavascript(String js, ValueCallback<String> callback) {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
webView.evaluateJavascript(js, callback);
}
else
{
LOG.d(TAG, "This webview is using the old bridge");
}
}
项目:FicsaveMiddleware
文件:MainActivity.java
public void runJSonPage(String url) {
Log.d("ficsaveM/runJSCalled", url + " " + ficUrl);
// Check if not loading the download URL and some fanfic url is there to download
if (!url.contains(getString(R.string.ficsave_download_url))) {
if (!ficUrl.isEmpty() && !Patterns.WEB_URL.matcher(ficUrl).matches()) {
Toast.makeText(
getApplicationContext(),
R.string.invalid_fic_url + " " + ficUrl,
Toast.LENGTH_LONG
).show();
}
// Get javascript to run on page
final String jsString = getJsScript();
// Execute Javascript on a new thread 2 second after page load
Log.d("ficsaveM/JSrun", "Start");
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mWebview.evaluateJavascript(jsString, new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.d("ficsaveM/JSrun", "Success, Value: " + value);
trackJsRunSuccess(value);
// empty the fanfic url so it won't get downloaded again somehow
ficUrl = "";
}
});
}
}, 2000);
}
}
项目:browser
文件:BrowserActivity.java
@Override
/**
* opens a file chooser
* param ValueCallback is the message from the WebView indicating a file chooser
* should be opened
*/
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("*/*");
startActivityForResult(Intent.createChooser(i, getString(R.string.title_file_chooser)), 1);
}
项目:boohee_v5.6
文件:BetBrowserFragment.java
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String
capture) {
BetBrowserFragment.this.mUploadMessage = uploadMsg;
Intent i = new Intent("android.intent.action.GET_CONTENT");
i.addCategory("android.intent.category.OPENABLE");
i.setType("image/*");
BetBrowserFragment.this.startActivityForResult(Intent.createChooser(i, "File " +
"Chooser"), 1);
}
项目:CustomActionWebView
文件:APIWebViewActivity.java
/**
* 执行网页中的js方法
*/
void callJsFunction() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
mWebView.evaluateJavascript("javascript:callJS()", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
//接受返回值
}
});
} else {
mWebView.loadUrl("javascript:callJS()");
}
}
项目:quickhybrid-android
文件:FileChooser.java
@Override
public void showFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) {
setFilePathCallbacks(filePathCallback);
String[] acceptTypes = new String[0];
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
acceptTypes = fileChooserParams.getAcceptTypes();
}
dealOpenFileChooser(acceptTypes.length > 0 ? acceptTypes[0] : "");
}
项目:EasyReader
文件:MyWebChromeClient.java
private void openFileChooserImplForAndroid5(ValueCallback<Uri[]> uploadMsg) {
mUploadMessageForAndroid5 = uploadMsg;
Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
contentSelectionIntent.setType("image/*");
Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
chooserIntent.putExtra(Intent.EXTRA_TITLE, "图片选择");
mActivity.startActivityForResult(chooserIntent, FILECHOOSER_RESULTCODE_FOR_ANDROID_5);
}
项目:cordova-plugin-x5-webview
文件:X5WebViewEngine.java
@Override
public void evaluateJavascript(String js, ValueCallback<String> callback) {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// For override to type casting by Jeremy
webView.evaluateJavascript(js, (com.tencent.smtt.sdk.ValueCallback) callback);
}
else
{
LOG.d(TAG, "This webview is using the old bridge");
}
}
项目:Auto.js
文件:CommunityWebView.java
@Override
public boolean openFileChooser(ValueCallback<Uri> callback, String[] acceptType) {
if (super.openFileChooser(callback, acceptType)) {
return true;
}
new FileChooserDialogBuilder(getContext())
.title(R.string.text_select_file_to_upload)
.dir(StorageFileProvider.DEFAULT_DIRECTORY_PATH)
.singleChoice(file -> callback.onReceiveValue(Uri.fromFile(file)))
.cancelListener(dialog -> callback.onReceiveValue(null))
.show();
return true;
}
项目:Auto.js
文件:EWebView.java
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean onShowFileChooser(WebView webView,
ValueCallback<Uri[]> filePathCallback,
WebChromeClient.FileChooserParams fileChooserParams) {
openFileChooser(value -> {
if (value == null) {
filePathCallback.onReceiveValue(null);
} else {
filePathCallback.onReceiveValue(new Uri[]{value});
}
}, fileChooserParams.getAcceptTypes());
return true;
}