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

后端 未结 6 497
不思量自难忘°
不思量自难忘° 2020-12-09 13:20

Hi I want to open the website in chrome app from my app webview when user click on particular link. I see this is possible https://developer.chrome.com/multidevice/android/i

相关标签:
6条回答
  • 2020-12-09 14:01

    Use this:

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

    hope this will help..

    0 讨论(0)
  • 2020-12-09 14:16

    It seems you're looking for the new Android Intents link that will create and explicit intent for the device for a link.

    <a href="intent://<URL>#Intent;scheme=http;package=com.android.chrome;end">
    

    works for me. so

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

    will take you to this question in Chrome. Note that the scheme is specified separately so if you want to launch https links, you'd have to change scheme to scheme=https

    But as everyone is saying, an explicit Chrome intent is a very non-Android thing to do. A better way would be to specify the ACTION_VIEW action like so:

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

    Source: The same page you linked

    Thanks, I learned something today!

    0 讨论(0)
  • 2020-12-09 14:21

    Below code make launch urls in webview including intent:// url scheme in 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;
        }
    }
    
    0 讨论(0)
  • 2020-12-09 14:23

    Google Chrome app Package name is com.android.chrome so ready your Intent URL using below concept

         intent:
        //scan/
        #Intent; 
        package=com.android.chrome; 
        scheme=zxing; 
        end; 
    
    0 讨论(0)
  • 2020-12-09 14:23

    This code is to open an android application from your chrome browser. You can check this from this link

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

    I am having another way of opening Chrome browser from your application

    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);
       }
      }
    }
    
    0 讨论(0)
  • 2020-12-09 14:24

    I have tested below code with Nexus 6 with Chrome and Mozilaa installed and it works great,

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

    This will give error if Chrome is not installed in your device. So put check for package availability.

    0 讨论(0)
提交回复
热议问题