如何在webview里实现唤起QQ 用webview浏览网页时我发现不可以打开QQ临时会话网页,其他浏览器打开可以唤起QQ,但我的工程显示这样,如图。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package com.genwoxue.webview;import android.annotation.SuppressLint;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.net.Uri;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.view.View;import android.webkit.WebChromeClient;import android.webkit.WebResourceResponse;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.ProgressBar;/** * 实现加在一个WebView 为WebView加载时添加一个类型微信的进度条 * @author Administrator * */@SuppressLint("SetJavaScriptEnabled")public class MainActivity extends Activity{ private WebView webView; private ProgressBar progressBar; private String urlString = "http://xiaoquan.xiaopg6.top"; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { // TODO Auto-generated method stub webView = (WebView)findViewById(R.id.webview); progressBar = (ProgressBar)findViewById(R.id.pergress); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true); webSettings.setDefaultTextEncodingName("utf-8"); // 让网页适配屏幕 webView.getSettings().setUseWideViewPort(true); webView.getSettings().setLoadWithOverviewMode(true); webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);//关闭WebView中缓存 webView.setWebViewClient(new WebViewClient(){ @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // TODO Auto-generated method stub super.onPageStarted(view, url, favicon); System.out.println("Page开始 " + url + " " + favicon); } @Override public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub super.onPageFinished(view, url); System.out.println("Page结束 " +url); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub //return super.shouldOverrideUrlLoading(view, url); view.loadUrl(url); return true; } }); webView.setWebChromeClient(new WebChromeClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } @Override public WebResourceResponse shouldInterceptRequest(WebView view, String url) { if (url.startsWith("http") || url.startsWith("https")) { return super.shouldInterceptRequest(view, url); } else { Intent in = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(in); return null; } } }); webView.loadUrl(urlString); } //设置返回键动作(防止按返回键直接退出程序) @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO 自动生成的方法存根 if(keyCode==KeyEvent.KEYCODE_BACK) { if(webView.canGoBack()) {//当webview不是处于第一页面时,返回上一个页面 webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); webView.goBack(); return true; } } return false; }} 在shouldOverrideUrlLoading中处理。public boolean shouldOverrideUrlLoading(WebView view, String url) { if (URLUtil.isNetworkUrl(url)){ view.loadUrl(url); return true; } else { try { startActivity(Intent.parseUri(url, Intent.URI_INTENT_SCHEME)); } catch (Exception ex) { ex.printStackTrace(); } return true; } } 求助!!关于百度地图的问题 三星I9008如何安装谷歌市场 android back COCOS2D移植Android 关于两个canvas协同工作的使用 Handler中是否可以开启Activity? 求一段在CMWAP下可以运行的代码 jpg的图片做背景显示不出来,何解 底层问题,安卓为什么不能像windows那样装驱动升级驱动? 如何通过代码获取以及设置android4.0系统的以太网配置中的静态IP,子网掩码,默认网关,DNS 安卓Editext问题 应用权限的问题!
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;/**
* 实现加在一个WebView 为WebView加载时添加一个类型微信的进度条
* @author Administrator
*
*/
@SuppressLint("SetJavaScriptEnabled")
public class MainActivity extends Activity{
private WebView webView;
private ProgressBar progressBar;
private String urlString = "http://xiaoquan.xiaopg6.top";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
// TODO Auto-generated method stub
webView = (WebView)findViewById(R.id.webview);
progressBar = (ProgressBar)findViewById(R.id.pergress);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setDefaultTextEncodingName("utf-8");
// 让网页适配屏幕
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);//关闭WebView中缓存
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
System.out.println("Page开始 " + url + " " + favicon);
} @Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
System.out.println("Page结束 " +url);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
//return super.shouldOverrideUrlLoading(view, url);
view.loadUrl(url);
return true;
}
});
webView.setWebChromeClient(new WebChromeClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } @Override public WebResourceResponse shouldInterceptRequest(WebView view, String url) { if (url.startsWith("http") || url.startsWith("https")) { return super.shouldInterceptRequest(view, url); } else { Intent in = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(in); return null; } } });
webView.loadUrl(urlString);
} //设置返回键动作(防止按返回键直接退出程序)
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO 自动生成的方法存根
if(keyCode==KeyEvent.KEYCODE_BACK) {
if(webView.canGoBack()) {//当webview不是处于第一页面时,返回上一个页面
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webView.goBack();
return true;
} }
return false;
}
}
if (URLUtil.isNetworkUrl(url)){
view.loadUrl(url);
return true;
} else {
try {
startActivity(Intent.parseUri(url, Intent.URI_INTENT_SCHEME));
} catch (Exception ex) {
ex.printStackTrace();
}
return true;
}
}