如何从内置web浏览器而不是应用程序中的代码打开URL?

我试过了:

try {
    Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(download_link));
    startActivity(myIntent);
} catch (ActivityNotFoundException e) {
    Toast.makeText(this, "No application can handle this request."
        + " Please install a webbrowser",  Toast.LENGTH_LONG).show();
    e.printStackTrace();
}

但我有个例外:

No activity found to handle Intent{action=android.intent.action.VIEW data =www.google.com

当前回答

如果您想向用户显示一个带有所有浏览器列表的对话框,以便他可以选择首选项,下面是示例代码:

private static final String HTTPS = "https://";
private static final String HTTP = "http://";

public static void openBrowser(final Context context, String url) {

     if (!url.startsWith(HTTP) && !url.startsWith(HTTPS)) {
            url = HTTP + url;
     }

     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
     context.startActivity(Intent.createChooser(intent, "Choose browser"));// Choose browser is arbitrary :)

}

其他回答

简单的回答

你可以看到Android开发者的官方示例。

/**
 * Open a web page of a specified URL
 *
 * @param url URL to open
 */
public void openWebPage(String url) {
    Uri webpage = Uri.parse(url);
    Intent intent = new Intent(Intent.ACTION_VIEW, webpage);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}

它的工作原理

请查看Intent的构造函数:

public Intent (String action, Uri uri)

您可以将android.net.Uri实例传递给第二个参数,并根据给定的数据url创建一个新的Intent。

然后,只需调用startActivity(Intent Intent)来启动一个新的Activity,该Activity与具有给定URL的Intent绑定在一起。

我需要if check语句吗?

对医生说:

如果设备上没有可以接收到隐含意图的应用程序,那么当您的应用程序调用startActivity()时,它将崩溃。要首先验证应用程序是否存在以接收意图,请调用intent对象上的resolveActivity()。如果结果为非空,则至少有一个应用程序可以处理该意图,并且可以安全地调用startActivity()。如果结果为空,则不应使用意图,如果可能,应禁用调用意图的功能。

奖金

创建Intent实例时,可以在一行中编写如下内容:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

在try块中,粘贴以下代码,AndroidIntent直接使用URI(统一资源标识符)大括号中的链接来标识链接的位置。

你可以试试这个:

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

Webview可用于在应用程序中加载Url。用户可以在文本视图中提供URL,也可以对其进行硬编码。

也不要忘记AndroidManifest中的互联网权限。

String url="http://developer.android.com/index.html"

WebView wv=(WebView)findViewById(R.id.webView);
wv.setWebViewClient(new MyBrowser());
wv.getSettings().setLoadsImagesAutomatically(true);
wv.getSettings().setJavaScriptEnabled(true);
wv.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
wv.loadUrl(url);

private class MyBrowser extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}

通过意图查看简单的网站,

Intent viewIntent = new Intent("android.intent.action.VIEW", Uri.parse("http://www.yoursite.in"));
startActivity(viewIntent);  

使用这个简单的代码在android应用程序中查看您的网站。

在清单文件中添加internet权限,

<uses-permission android:name="android.permission.INTERNET" /> 

试试看:

Uri uri = Uri.parse("https://www.google.com");
startActivity(new Intent(Intent.ACTION_VIEW, uri));

或者如果您希望在活动中打开web浏览器,请执行以下操作:

WebView webView = (WebView) findViewById(R.id.webView1);
WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
webView.loadUrl(URL);

如果您想在浏览器中使用缩放控制,则可以使用:

settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);