Android中通过intent打开浏览器到指定网页

android系统内置了很多应用,包括电话拨号,短信,浏览器等,这里创建一个简单的Android程序,调用内置的浏览器打开指定的地址。

界面如下:

201210250849.jpg

对应的layout xml为:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent" >


<Button

android:id="@+id/btnGo"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_alignParentTop="true"

android:layout_marginTop="46dp"

android:text="@string/btnTitle_go" />


<EditText

android:id="@+id/txtUri"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBaseline="@+id/btnGo"

android:layout_alignBottom="@+id/btnGo"

android:layout_alignParentLeft="true"

android:layout_toLeftOf="@+id/btnGo"

android:ems="10"

android:text="http://junqilian.cnblogs.com" >


<requestFocus />

</EditText>


</RelativeLayout>


是Java代码实现如下,主要是给EditText添加一个OnKeyListener,处理在editText里面按回车键,给button添加一个onClickListener,触发到OpenBroswer函数,通过intent打开内置的浏览器。

package com.example.openbroswer;


import android.net.Uri;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.KeyEvent;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.View.OnKeyListener;

import android.widget.Button;

import android.widget.EditText;


public class MainActivity extends Activity {

private EditText urlText;

private Button goButton;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

  

urlText = (EditText)findViewById(R.id.txtUri);

goButton = (Button)findViewById(R.id.btnGo);

  

//setup event handler

urlText.setOnKeyListener(new OnKeyListener(){

public boolean onKey(View view, int keyCode, KeyEvent event){

if(keyCode == KeyEvent.KEYCODE_ENTER){

openBrower();

return true;

}

return false;

}

});

  

goButton.setOnClickListener(new OnClickListener(){

public void onClick(View view){

openBrower();

}

  

});

}


protected void openBrower() {

Uri uri = Uri.parse(urlText.getText().toString());

Intent intent = new Intent(Intent.ACTION_VIEW,uri);

startActivity(intent);

}


@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

}

}


代码不复杂,不过从.net + visual studio过来的,还是不习惯。。。

运行效果:


201210250855.jpg

转载于:https://www.cnblogs.com/junqilian/archive/2012/10/25/2738165.html

Android ,你可以使用隐式意图 (Implicit Intent) 来通过 Android 的默认浏览器应用打开一个网页。这通常涉及到创建一个 `Intent` 对象,设置它的动作 (Action) 和数据 (Data),指定浏览器作为目标应用。以下是一个简单的示例: ```java // 创建意图对象 Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.example.com")); // 网页URL // 检查设备上是否安装了浏览器应用,如果没有,则提示用户选择 if (!isBrowserInstalled()) { List<ResolveInfo> activities = getPackageManager().queryIntentActivities(intent, 0); if (activities.isEmpty()) { Toast.makeText(context, "No browser found", Toast.LENGTH_SHORT).show(); } else { intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } } else { intent.setPackage("com.android.browser"); // 如果已知浏览器包名 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } // 几个辅助函数 private boolean isBrowserInstalled() { return getPackageManager().resolveActivity(intent, 0) != null; } private List<ResolveInfo> getPackageManager().queryIntentActivities(Intent intent, int flags) { // ... 实现查询系统活动的功能 } ``` 在这个例子,我们首先创建了一个 `ACTION_VIEW` 的意图,然后设置了目标 URL。如果用户没有预装浏览器,我们会尝试从可用的应用列表选择一个能处理这种意图的应用。如果找到了,就启动这个新的任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值