关闭

Android使用WebView的打开链接的方式(当前的WebView或者默认浏览器)

标签: WebViewandroid浏览器
7346人阅读 评论(0) 收藏 举报
分类:

首先简单介绍一下WebView的用法与普通的ImageView组件用法基本相似,他提供了大量的方法来执行浏览器的操作。

WebView的内容可以再当前的组件下面打开也可以在默认浏览器打开,这些都是可控的。。。。。。

下面用代码实际操作一下

WebView布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000000"
    android:orientation="vertical" >
	<LinearLayout 
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:orientation="horizontal">
	    <!-- 搜索框 -->
	    <EditText 
		    android:id="@+id/url"
		    android:layout_width="275dp"
		    android:layout_height="60dp"
		    android:layout_marginRight="0px"
		    android:singleLine="true"/>
	    <!-- 确认按钮 -->
	    <Button 
	        android:id="@+id/search"
	        android:layout_width="50dp"
	        android:layout_height="60dp"
	        android:layout_marginRight="0px"
	        android:text="搜索"/>
	</LinearLayout>
	<!-- 定义一个WebView显示网页内容 -->
	<WebView 
	    android:id="@+id/show"
	    android:layout_marginTop="0px"
	    android:layout_width="fill_parent"
	    android:layout_height="fill_parent"/>
</LinearLayout>

AndroidMainifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest 
	......
	<uses-permission android:name="android.permission.INTERNET"/>
    <application
		......
        <activity
			......
            android:theme="@android:style/Theme.NoTitleBar"
            ......
        </activity>
    </application>
</manifest>


主程序:

package com.example.minibrowser;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
	EditText url;
	WebView show;
	Button search;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		//获取页面中文本框,WebView组件
		url = (EditText) findViewById(R.id.url);
		show = (WebView) findViewById(R.id.show);
		search = (Button) findViewById(R.id.search);
		StringBuilder html = new StringBuilder();
		html.append("<html>");
		html.append("<head>");
		html.append("<title>stven_king欢迎您</title>");
		html.append("</head>");
		html.append("<body>");
		html.append("<h2>北京欢迎您</h2>");
		html.append("</body>");
		html.append("</html>");
		//这种方式可能导致乱码
		//show.loadData(html.toString(), "text/html", "utf-8");
		show.loadDataWithBaseURL(null, html.toString(), "text/html", "utf-8", null);
		//打开本地文件
		//show.loadUrl("file:///android_stven_king/new.html");
		//设置webview的打开方式为在当前的Webview下打开
		show.setWebViewClient(new MyWebViewClient3());
		search.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				String urlstr = url.getText().toString();
				System.out.println(urlstr);
				show.loadUrl(urlstr);
			}
		});
	}
	/**
	 * 自定义WebView类,重载shouldOverrideUrlLoading,改变打开方式
	 * 
	 * */
	private class MyWebViewClient extends WebViewClient{
		@Override
		public boolean shouldOverrideUrlLoading(WebView view, String url){
			view.loadUrl(url);
			return true;
		}
	}
	/**
	 * 自定义WebView类,重载shouldOverrideUrlLoading,改变打开方式
	 * 
	 * */
	private class MyWebViewClient2 extends WebViewClient {
		@Override
		public void onPageStarted(WebView view, String url, Bitmap favicon) {
			// TODO Auto-generated method stub
			super.onPageStarted(view, url, favicon);
		}

	}
	/**
	 * 自定义WebView类,重载shouldOverrideUrlLoading,改变打开方式
	 * 
	 * */
	private class MyWebViewClient3 extends WebViewClient{
		@Override
		public boolean shouldOverrideUrlLoading(WebView view, String url){
			//遇到特定的连接用其他浏览器打开
			if (url.equals("http://www.baidu.com")) {
				view.loadUrl(url);
				return false;
			} else {
				Uri uri = Uri.parse(url); // url为你要链接的地址
				Intent intent = new Intent(Intent.ACTION_VIEW, uri);
				startActivity(intent);
			}
			return true;
		}
	}
}


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Android之WebView 防止调用系统浏览器打开页面

android在WebView中加载url,防止调用系统浏览器加载 只要重写webView的WebViewClient 具体代码如下: web_adSentence.setWebViewClient(...
  • jing85432373
  • jing85432373
  • 2016-10-28 09:48
  • 4445

android WebView 应用内点击超链接不调用系统浏览器

android WebView 应用内点击超链接不调用系统浏览器
  • cxt528440900
  • cxt528440900
  • 2015-07-06 16:45
  • 1881

android之WebView中点击链接使用自身打开

最近写项目用到了WebView,可是却突然遇到问题了,首次加载的网页在自定义的webView中显示,点击网页中的链接,需要跳转到第三方的应用,这时候就无法跳转了 后来发现,为WebView设置WebV...
  • as199303
  • as199303
  • 2016-08-06 10:29
  • 1875

android使用webview加载网页

package com.example.webview; import android.os.Bundle; import android.annotation.SuppressLint; impo...
  • abc5382334
  • abc5382334
  • 2014-04-17 14:55
  • 48654

[Android] 使用 WebView 加载网页而不调用外部浏览器

在使用 WebView 当加载网页时,默认会调用系统的默认外部浏览器来加载页面,原因是因为 WebViewClient 中的 shouldOverrideUrlLoading 方法默认返回为false...
  • yuxin1100
  • yuxin1100
  • 2016-06-15 17:35
  • 9706

WebView中点击链接使用自身打开

private void initWebView(){       //从布局文件中扩展webView       this.webView=(WebView)this.findViewB...
  • u010862673
  • u010862673
  • 2015-10-22 10:06
  • 168

解决WebView加载URL跳转到系统浏览器的问题

1.问题 webview加载url跳转到系统浏览器,用户体验非常的差 2.解决方法 重写WebViewClient的shouldOverrideUrlLoading(WebView view,...
  • yy1300326388
  • yy1300326388
  • 2015-02-27 11:04
  • 13376

(一)webView加载url

//自定义有进度条的webview public class ProgressWebView extends WebView {     private ProgressBar progr...
  • f917386389
  • f917386389
  • 2015-08-25 15:23
  • 1020

webview loadUrl() 弹出系统浏览器解决办法

有很多时候,我们请求的网站会直接跳转到一个位置,这样会直接全屏浏览器加载被跳转的网页,或者弹出浏览器选择(除了系统的,你还自己安装了其他浏览器)。 于是解决办法的原理就是,在webview中跳转。 ...
  • lieri111
  • lieri111
  • 2012-11-22 16:38
  • 16061

WebView自定义浏览器之在点击链接后不使用其他浏览器打开

WebView自定义浏览器之在点击链接后不使用其他浏览器打开
  • u011630097
  • u011630097
  • 2016-07-02 17:19
  • 380
    个人资料
    • 访问:272691次
    • 积分:3785
    • 等级:
    • 排名:第9816名
    • 原创:327篇
    • 转载:17篇
    • 译文:10篇
    • 评论:34条
    博客专栏
    最新评论