Android学习笔记(十八)——使用意图筛选器和实现浏览网页(附源代码)

使用意图筛选器


点击下载源代码


1、创建一个Intents项目,给该项目加入一个新类,命名为MyBrowserActivity。在res/layout目录下新增一个browser.xml;

2、在AndroidManifest.xml文件里加入例如以下代码:

加入权限:

    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.INTERNET" />
        <activity
            android:name=".MyBrowserActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <action android:name="net.zenail.MyBrowser" />

                <category android:name="android.intent.category.DEFAULT" />

                <data android:scheme="http" />
            </intent-filter>
        </activity>

action:动作。category:类别;data:指明获取的数据类型。

3、在main.xml文件里加入三个Button:

    <Button
        android:id="@+id/btn_webbrowser"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onClickWebBrowser"
        android:text="Web Browser" />

    <Button
        android:id="@+id/btn_makecalls"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onClickMakeCalls"
        android:text="Make Calls" />

 
    <Button
        android:id="@+id/btn_launchMyBrowser"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onClickLaunchMyBrowser"
        android:text="Launch My Browser" />

4、在IntentsActivity.java文件里加入三个Button相应的三个点击方法:

	public void onClickWebBrowser(View v) {
		Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
				Uri.parse("http://网址"));//此处输入百度网址。CSDN不让加链接...
		//使用createChooser()的优点:
		//1、将显示的选择对话框的标题改掉。且没有了Use by default for this action选项
		//2、当没有活动与程序的Intent对象匹配时,应用程序不会崩溃
		//startActivity(intent.createChooser(intent, "Open URL using..."));
		startActivity(intent);
	}

	public void onClickMakeCalls(View v) {
		Intent intent = new Intent(android.content.Intent.ACTION_DIAL,
				Uri.parse("tel:+651234567"));
		startActivity(intent);
	}

	public void onClickLaunchMyBrowser(View v) {
		Intent intent = new Intent("net.zenail.MyBrowser");
		intent.setData(Uri.parse("http://网址"));//此处输入百度网址,CSDN不让加链接...
		startActivity(intent);
	}

5、在browser.xml中加入一个WebView:

    <WebView
        android:id="@+id/WebView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

6、在MyBrowserActivity.java文件里加入例如以下代码,实现浏览网页功能:

public class MyBrowserActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.browser);
		Uri url = getIntent().getData();
		WebView webView = (WebView) findViewById(R.id.WebView01);
		webView.setWebViewClient(new Callback());
		webView.loadUrl(url.toString());
	}

	private class Callback extends WebViewClient {
		@Override
		public boolean shouldOverrideUrlLoading(WebView view, String url) {
			// TODO Auto-generated method stub
			return false;
		}
	}
}

7、执行一下,效果例如以下:


点击第三个button:


点击第一个button:


若想完好意图筛选器,则在IntentsActivity.java的onClickWebBrowser()方法中加入createChooser()方法:

startActivity(intent.createChooser(intent, "Open URL using..."));

加入后的效果例如以下:


这时就可以选择你想要选择的应用程序就可以~


附、使用createChooser()的优点:

1、将显示的选择对话框的标题改掉,且没有了Use by default for this action选项。

2、当没有活动与程序的Intent对象匹配时,应用程序不会崩溃。

posted @ 2017-05-12 14:14  llguanli  阅读(164)  评论(0编辑  收藏  举报