意图打开网址会导致浏览器输入错误的网址

时间:2014-08-22 05:10:56

标签: android url android-intent uri

我正在尝试使用intent在浏览器中打开一个URL。

我的代码是

Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.onair99.com"));
startActivity(i);

由于浏览器尝试打开这样的内容,这会导致我尝试过的任何浏览器出错:

http://http//onair99.com//

据我所知,我只遇到过这个特定网址的问题。

有人知道为什么吗?

感谢。

2 个答案:

答案 0 :(得分:2)

按照post

中的说明进行操作
String url = "http://www.somewebsite.com";

在生产级别代码中,您可能想检查网址是以http还是https开头...最好检查

if (!url.startsWith("http://") && !url.startsWith("https://"))  
  url = "http://" + url;

Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);

这里是documentation of Intent.ACTION_VIEW.

答案 1 :(得分:0)

试用此代码

main.xml中

        

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=" Go to link" />

    </LinearLayout>

MyAndroidAppActivity.java

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;

public class MyAndroidAppActivity extends Activity {

    Button button;

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

        addListenerOnButton();

    }

    public void addListenerOnButton() {

        button = (Button) findViewById(R.id.button1);

        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.onair99.com"));
                startActivity(browserIntent);

            }

        });

    }

}

的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mkyong.android"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".MyAndroidAppActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>