Open Chrome App with URL

后端 未结 8 1447
情话喂你
情话喂你 2021-02-02 14:59

Is there a way to open Chrome app on Android from default Android browser? I\'m able to open the app, but it doesn\'t redirect user to correct page. This is what I tried:

<
相关标签:
8条回答
  • 2021-02-02 15:07

    Yes, but if it's not installed on the system you'll run into an ActivityNotFoundException. If it's not available, you should launch through the normal browser:

    String url = "http://mysuperwebsite";
    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)
  • 2021-02-02 15:08

    I am using below code to open Chrome browser from Android app

    String urlString = "http://google.com";
    Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(urlString));
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.setPackage("com.android.chrome");
    try
    {
        context.startActivity(intent);
    } 
    catch (ActivityNotFoundException ex)
    {
        //if Chrome browser not installed
        intent.setPackage(null);
        context.startActivity(intent);
    }
    
    0 讨论(0)
  • 2021-02-02 15:11

    The Intent solutions above no longer seem to work.

    The following works for me ..

    document.location = 'googlechrome://navigate?url=www.tovia.com/';

    0 讨论(0)
  • 2021-02-02 15:19

    Your xml:

    <?xml version="1.0" encoding="utf-8"?>
    <WebView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    />
    

    Your WebViewActivity:

    public class WebViewActivity extends Activity {
    
        private WebView webView;
    
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.webview);
    
            webView = (WebView) findViewById(R.id.webView1);
            webView.getSettings().setJavaScriptEnabled(true);
            webView.loadUrl("http://www.google.com");
        }
    }
    
    0 讨论(0)
  • 2021-02-02 15:21

    The best thing is to detect the user browser

    alert(navigator.userAgent);
    

    and depending on a conditional statement

    if (navigator.userAgent.indexOf('foo')) {
     // code logic
    }
    

    and based on that use BOM API to update window location

    window.location.href = 'googlechrome://navigate?url='+ link;
    
    0 讨论(0)
  • 2021-02-02 15:24

    Here is a solution without a try catch, if chrome is installed, it will be used. Otherwise, it will go to the device default

    void open(Activity activity, String url) {
        Uri uri = Uri.parse("googlechrome://navigate?url=" + url);
        Intent i = new Intent(Intent.ACTION_VIEW, uri);
        if (i.resolveActivity(activity.getPackageManager()) == null) {
            i.setData(Uri.parse(url));
        }
        activity.startActivity(i);
    }
    
    0 讨论(0)
提交回复
热议问题