在 Google Chrome 中启动任何网站 link 的目的是什么

What is the intent to launch any website link in Google Chrome

你好我想在用户点击特定 link 时从我的应用程序 webview 打开 chrome 应用程序中的网站。我看到这是可能的 https://developer.chrome.com/multidevice/android/intents,这里是针对 zxing 应用程序的,而不是针对 google chrome.

<a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end"> Take a QR code </a>

我想要 Google Chrome 相同的语法。目前我在 webview 中打开 link,点击 link 我想指定 chrome 的意图,比如 zxing。

换句话说, 我有一个 webview,我在其中打开了一个特定的 URL,然后如果用户单击 "XYZ" 或 webview 中的某些内容,那么它应该打开 google chrome。因此,为此我将在 html 中添加一些 chrome 意图标记,这就是我正在寻找的语法 –

如果您知道打开 Google Chrome 任何 hyperlink.

的语法,请分享

提前致谢。

Google Chrome 应用程序包名称是 com.android.chrome 所以准备好你的 Intent URL 使用下面的概念

     intent:
    //scan/
    #Intent; 
    package=com.android.chrome; 
    scheme=zxing; 
    end; 

使用这个:

String url = "http://www.example.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);

希望这会有所帮助..

我已经在安装了 Chrome 和 Mozilaa 的 Nexus 6 上测试了以下代码,效果很好,

    String url = "http://www.whosebug.com";
    Intent i = new Intent();
    i.setPackage("com.android.chrome");
    i.setAction(Intent.ACTION_VIEW);
    i.setData(Uri.parse(url));
    startActivity(i);

如果您的设备中没有安装 Chrome,这将出错。所以请检查包裹可用性。

您似乎正在寻找新的 Android Intents link,它将为 link.

的设备创建明确的 Intent
<a href="intent://<URL>#Intent;scheme=http;package=com.android.chrome;end">

适合我。 所以

<a href="intent://whosebug.com/questions/29250152/what-is-the-intent-to-launch-any-website-link-in-google-chrome#Intent;scheme=http;package=com.android.chrome;end"> 

将在 Chrome 中将您带到这个问题。 请注意,scheme 是单独指定的,所以如果你想启动 https links,你必须将 scheme 更改为 scheme=https

但正如每个人所说,明确的 Chrome 意图是一件非常不 Android 的事情。更好的方法是像这样指定 ACTION_VIEW 操作:

<a href="intent://whosebug.com/questions/29250152/what-is-the-intent-to-launch-any-website-link-in-google-chrome#Intent;scheme=http;action=android.intent.action.VIEW;end;">

来源:The same page you linked

谢谢,今天学到东西了!

此代码用于从 chrome 浏览器打开 android 应用程序。您可以从这个 link

中查看
  <a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end"> Take a QR code </a>

我正在使用另一种方式从您的应用程序打开 Chrome 浏览器

private class MyWebViewClient extends WebViewClient {

public boolean shouldOverrideUrlLoading(WebView paramWebView, String paramString) {

   String url = Uri.parse(paramString);
   try {
       Intent i = new Intent("android.intent.action.MAIN");
       i.setComponent(ComponentName.unflattenFromString
                      ("com.android.chrome/com.android.chrome.Main"));
       i.addCategory("android.intent.category.LAUNCHER");
       i.setData(Uri.parse(url));
       startActivity(i);
   } catch(ActivityNotFoundException e) {
       // Chrome is not installed
       Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
       startActivity(i);
   }
  }
}

下面的代码在网络视图中启动 urls,包括 intent:// url 方案 Android。

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (url != null) {
        if (url.startsWith("http://") || url.startsWith("https://")) {
            view.loadUrl(url);
        } else if (url.startsWith("intent://")) {
            try {
                Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
                Intent existPackage = getPackageManager().getLaunchIntentForPackage(intent.getPackage());
                if (existPackage != null) {
                    startActivity(intent);
                } else {
                    Intent marketIntent = new Intent(Intent.ACTION_VIEW);
                    marketIntent.setData(Uri.parse("market://details?id=" + intent.getPackage()));
                    startActivity(marketIntent);
                }
                return true;
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else if (url.startsWith("market://")) {
            try {
                Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
                if (intent != null) {
                    startActivity(intent);
                }
                return true;
            } catch (URISyntaxException e) {
                e.printStackTrace();
            }
        } else { // unhandled url scheme
             view.getContext().startActivity(
                    new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
        }
        return true;
    } else {
        return false;
    }
}