private Object getHtmlObject() {
Object insertObj = new Object() {
// public void shlnk(final String site_url) {
public void sharelink(final String site_url,
final String image_url, final String site_name) {
runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
}
};
return insertObj;
}
// 获得WebView组件
WebView webView = (WebView) findViewById(R.id.webview);
webView.requestFocus();
// 触摸焦点起作用
// 设置页面是否可以用到
js webView.getSettings().setJavaScriptEnabled(true);
// 设置WebView的一些缩放功能点 // 滚动条风格
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
// 取消滚动条 webView.setHorizontalScrollBarEnabled(false);
// webView.getSettings().setSupportZoom(true);
// webView.getSettings().setBuiltInZoomControls(true);
webView.setHorizontalScrollbarOverlay(true); // 设置默认为utf-8
// webView.getSettings().setDefaultTextEncodingName("gbk");
webView.getSettings().setDefaultTextEncodingName("utf-8");
// 在同种分辨率的情况下,屏幕密度不一样的情况下,自动适配页面
// DisplayMetrics dm = getResources().getDisplayMetrics();
// int scale = dm.densityDpi;
// if (scale == 240) {
// // webView.getSettings().setDefaultZoom(ZoomDensity.FAR);
// } else if (scale == 160) {
// webView.getSettings().setDefaultZoom(ZoomDensity.MEDIUM);
// } else { // webView.getSettings().setDefaultZoom(ZoomDensity.CLOSE); // }
// 判断加载的页面URL地址是否正确
if (URLUtil.isNetworkUrl(Urls.URL) == true) {
// webView.addJavascriptInterface(getHtmlObject(), "jsObj");
// webView.loadUrl("http://172.**.**.**/js.html");
webView.addJavascriptInterface(getHtmlObject(), "jsObj");
// webView.loadUrl("http://172.**.**.**//index.html");
// 加载
webView.loadUrl(Urls.URL);
//webView.loadUrl("javascript: add('"
+ bn+ "')");
// 设置web视图客户端
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// 设置点击网页里面的链接还是在当前的webview里跳转
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url,
Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
rl_load_progress.setVisibility(View.VISIBLE);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
// webView.setInitialScale(70);
}
// @Override
// public void onReceivedSslError(WebView view,
// SslErrorHandler handler, android.net.http.SslError error) {
// // 设置webview处理https请求
// handler.proceed();
// }
// @Override
// public void onReceivedError(WebView view, int errorCode,
// String description, String failingUrl) {
// super.onReceivedError(view, errorCode, description,
// failingUrl);
// // Toast.makeText(StartActivity.this,
// // errorCode + " " + description, Toast.LENGTH_SHORT)
// // .show();
// }
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
rl_load_progress.setVisibility(View.GONE);
}
});
WebChromeClient chromeClient = new WebChromeClientImpl();
webView.setWebChromeClient(chromeClient);
}
final public static int FILE_SELECTED = 4;
public static ValueCallback<Uri> mUploadMessage;
private class WebChromeClientImpl extends WebChromeClient {
@Override
public void onProgressChanged(WebView view, int newProgress) {
// pb.setProgress(newProgress);
// if (newProgress == 100) {
// pb.setVisibility(View.GONE);
// }
super.onProgressChanged(view, newProgress);
}
// 扩展支持alert事件
@Override
public boolean onJsAlert(WebView view, String url, String message,
JsResult result) {
Builder builder = new Builder(view.getContext());
builder.setTitle("商机通提示").setMessage(message)
.setPositiveButton("确定", null);
builder.setCancelable(false);
builder.setIcon(R.drawable.ic_launcher);
AlertDialog dialog = builder.create();
dialog.show();
result.confirm();
return true;
}
// 扩展浏览器上传文件
// 3.0++版本
public void openFileChooser(ValueCallback<Uri> uploadMsg,
String acceptType) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
StartActivity.this.startActivityForResult(
Intent.createChooser(i, "File Chooser"), FILE_SELECTED);
}
// 3.0--版本
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
StartActivity.this.startActivityForResult(
Intent.createChooser(i, "file Browser"), FILE_SELECTED);
}
// For Android 4.1
public void openFileChooser(ValueCallback<Uri> uploadMsg,
String acceptType, String capture) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
StartActivity.this.startActivityForResult(
Intent.createChooser(i, "File Chooser"), FILE_SELECTED);
}
}
protected class myWebChromeClient extends WebChromeClient {
// For Android 3.0+
public void openFileChooser(ValueCallback<Uri> uploadMsg,
String acceptType) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("*/*");
StartActivity.this.startActivityForResult(
Intent.createChooser(i, "File Chooser"), FILE_SELECTED);
}
// For Android < 3.0
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("*/*");
StartActivity.this.startActivityForResult(
Intent.createChooser(i, "File Chooser"), FILE_SELECTED);
}
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
System.out.println("sssssss");
if (requestCode == FILE_SELECTED) {
Log.e("TAG4", "onActivityResult");
if (null == mUploadMessage)
return;
Uri result = data == null || resultCode != RESULT_OK ? null : data
.getData();
/*
* String[] proj = { MediaStore.Images.Media.DATA };
*
* Cursor actualimagecursor =
* managedQuery(result,proj,null,null,null);
*
* int actual_image_column_index =
* actualimagecursor.getColumnIndexOrThrow
* (MediaStore.Images.Media.DATA);
*
* actualimagecursor.moveToFirst();
*
* String img_path =
* actualimagecursor.getString(actual_image_column_index);
*
* File file = new File(img_path);
*/
mUploadMessage.onReceiveValue(result);
mUploadMessage = null;
Log.e("file", "file");
}
}