3

webview单击按钮后,如何在默认浏览器或默认浏览器中打开 url ?目前,当我单击该btn1按钮时,它会提示我从手机中选择一个浏览器。我想在默认浏览器或webview.

这是我的java代码:

 public class myactivity extends Activity {

@Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button bt1 = (Button) findViewById(R.id.btn_click_login);
    btn_login.setOnClickListener(new OnClickListener() {
         public void onClick(View v) {
             Intent myWebLink = new Intent(android.content.Intent.ACTION_VIEW);
             myWebLink.setData(Uri.parse("http://google.com"));
             startActivity(myWebLink);
          }
         }
     );
}
4

5 回答 5

21

干得好。

确保包含<uses-permission android:name="android.permission.INTERNET"/>在清单中

Intent internetIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.google.com"));
internetIntent.setComponent(new ComponentName("com.android.browser","com.android.browser.BrowserActivity"));
internetIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(internetIntent);
于 2012-06-14T10:54:01.463 回答
4

可以试试这个你的意图

intent.setComponent(new ComponentName("com.android.browser", "com.android.browser.BrowserActivity"));

在你的代码中

 public void onClick(View v) {
             Intent myWebLink = new Intent(android.content.Intent.ACTION_VIEW);
             myWebLink.setComponent(new ComponentName("com.android.browser", "com.android.browser.BrowserActivity"));
             myWebLink.setData(Uri.parse("http://google.com"));
             startActivity(myWebLink);
       }
于 2012-06-14T10:53:26.080 回答
1

在您的布局 xml 中放置一个 WebView

<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent"

  android:gravity="center"  
  >

  <WebView 
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:id="@+id/web"
/>

</RelativeLayout>

在您的活动中获取对它的引用

WebView mWeb = (WebView) findViewById(R.id.web);

调用 loadUrl() 就可以了。

mWeb.loadUrl("http://google.com");
于 2012-06-14T19:21:50.330 回答
1

在 android 中有两种类型的意图:

显式意图:明确指定目标组件的位置。隐式 Intents:没有指定目标组件,而是提供了一些其他字段,即 Data、Action、Category.. 并根据这些字段(属性)android 系统过滤活动或组件来处理意图。

并且您正在使用 Implicit Intent,它将列出所有可以在 Action_VIEW 上工作的活动,以及指定的 URI。为避免这种情况,您只能选择通过其他参数限制 Android 系统进一步过滤,或将其更改为 Explicit Intent。并且要将其更改为显式意图,您需要目标组件名称。

于 2012-06-14T10:47:21.887 回答
0

这对我有用

        public void onClick(View v) {
            Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://google.com"));
            startActivity(browserIntent);
        }
于 2021-06-05T07:53:37.273 回答