Intent intent= new Intent();
intent.setAction("android.intent.action.VIEW");
Uri url = Uri.parse("http://www.baidu.com");
intent.setData(url);
startActivity(intent);
启动系统浏览器,需要自己选择;
Intent intent= new Intent();
intent.setAction("android.intent.action.VIEW");
Uri content_url = Uri.parse("http://www.cnblogs.com");
intent.setData(content_url);
intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");
startActivity(intent);
只要修改intent.setClassName("XXXXX","XXXXXXXXX");中相应的packagename 和 主启动activity即可调用其他浏览器
uc浏览器
":"
com.uc.browser
", "
com.uc.browser.ActivityUpdate“
opera
"com.opera.mini.android"
,
"com.opera.mini.android.Browser"
qq浏览器:
"com.tencent.mtt"
,
"com.tencent.mtt.MainActivity"
但是有时候我们的webview不只是支持这么单纯的功能,需要支持上传图片以及文本编辑,有的手机文本编辑输入框是会有冲突。
public class MeViewAction extends Activity {
@InjectView(id = R.id.load_pro)
private ProgressBar load_pro;
@InjectView(id = R.id.webview_vip)
private WebView webview;
private ImageView imageview;
private ValueCallback<Uri> mUploadMessage;
private final static int FILECHOOSER_RESULTCODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.web_vip);
imageview = (ImageView) findViewById(R.id.imageview_vip);
webview.setVisibility(View.VISIBLE);
imageview.setVisibility(View.GONE);
WebSettings setting = webview.getSettings();
setting.setDefaultTextEncodingName("utf-8");
setting.setJavaScriptEnabled(true);
setting.setAllowFileAccess(true);// 设置允许访问文件数据
setting.setSupportZoom(true);// 支持放大网页功能
setting.setBuiltInZoomControls(true);// 支持缩小网页功能
setting.setCacheMode(WebSettings.LOAD_NO_CACHE);
webview.clearCache(true);
setting.setLoadWithOverviewMode(true);
setting.setUseWideViewPort(true);
webview.requestFocusFromTouch();
//设置处理JavaScript的引擎
WebChromeClient webChromeClient = new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
public void openFileChooser(ValueCallback<Uri> uploadMsg,
String acceptType, String capture) {
if (mUploadMessage != null)
return;
mUploadMessage = uploadMsg;
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
startActivityForResult(
Intent.createChooser(intent, "完成操作需要使用"), FILECHOOSER_RESULTCODE);
}
};
webview.setWebChromeClient(webChromeClient);
/***打开本地缓存提供JS调用**/
setting.setDomStorageEnabled(true);
setting.setAppCacheMaxSize(1024 * 1024 * 8);
String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();
setting.setAppCachePath(appCachePath);
setting.setAllowFileAccess(true);
setting.setAppCacheEnabled(true);
// setting.setJavaScriptEnabled(true);
webview.loadUrl(url);
setting.setBlockNetworkImage(false);
// initComponent();
final String finalUrl = url;
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
webview.loadUrl(finalUrl);
return true;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
webview.loadUrl(url);
return true;
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
handler.sendEmptyMessage(0);
}
});
webview.loadUrl(url);
}
@InjectView(id = R.id.load_pro)
private ProgressBar load_pro;
@InjectView(id = R.id.webview_vip)
private WebView webview;
private ImageView imageview;
private ValueCallback<Uri> mUploadMessage;
private final static int FILECHOOSER_RESULTCODE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.web_vip);
imageview = (ImageView) findViewById(R.id.imageview_vip);
webview.setVisibility(View.VISIBLE);
imageview.setVisibility(View.GONE);
WebSettings setting = webview.getSettings();
setting.setDefaultTextEncodingName("utf-8");
setting.setJavaScriptEnabled(true);
setting.setAllowFileAccess(true);// 设置允许访问文件数据
setting.setSupportZoom(true);// 支持放大网页功能
setting.setBuiltInZoomControls(true);// 支持缩小网页功能
setting.setCacheMode(WebSettings.LOAD_NO_CACHE);
webview.clearCache(true);
setting.setLoadWithOverviewMode(true);
setting.setUseWideViewPort(true);
webview.requestFocusFromTouch();
//设置处理JavaScript的引擎
WebChromeClient webChromeClient = new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
public void openFileChooser(ValueCallback<Uri> uploadMsg,
String acceptType, String capture) {
if (mUploadMessage != null)
return;
mUploadMessage = uploadMsg;
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
startActivityForResult(
Intent.createChooser(intent, "完成操作需要使用"), FILECHOOSER_RESULTCODE);
}
};
webview.setWebChromeClient(webChromeClient);
/***打开本地缓存提供JS调用**/
setting.setDomStorageEnabled(true);
setting.setAppCacheMaxSize(1024 * 1024 * 8);
String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();
setting.setAppCachePath(appCachePath);
setting.setAllowFileAccess(true);
setting.setAppCacheEnabled(true);
// setting.setJavaScriptEnabled(true);
webview.loadUrl(url);
setting.setBlockNetworkImage(false);
// initComponent();
final String finalUrl = url;
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
webview.loadUrl(finalUrl);
return true;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
webview.loadUrl(url);
return true;
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
handler.sendEmptyMessage(0);
}
});
webview.loadUrl(url);
}
boolean b = true;
boolean back_info = false;
boolean back_info = false;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //按下的如果是BACK,同时没有重复
//是否能返回
b = webview.canGoBack();
Log.e("TAG_B","B"+b);
if (b){
webview.goBack();
}else {
if (back_info){
getApplicationContext().unregisterReceiver(mReceiver);
}
finish();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //按下的如果是BACK,同时没有重复
//是否能返回
b = webview.canGoBack();
Log.e("TAG_B","B"+b);
if (b){
webview.goBack();
}else {
if (back_info){
getApplicationContext().unregisterReceiver(mReceiver);
}
finish();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
}