【问题标题】:Open Chrome App with URL使用 URL 打开 Chrome 应用
【发布时间】:2014-06-08 22:04:00
【问题描述】:

有没有办法从默认的 Android 浏览器打开 Android 上的 Chrome 应用程序?我可以打开应用程序,但它不会将用户重定向到正确的页面。这是我尝试过的:

<a href="googlechrome://www.toovia.com">

我看到我可能必须形成一个意图 URL,但我希望有比这更简单的方法。

这应该来自网页,并且不涉及网页视图。

【问题讨论】:

标签: android html google-chrome android-browser


【解决方案1】:

是的,但是如果系统上没有安装它,您将遇到 ActivityNotFoundException。如果它不可用,您应该通过普通浏览器启动:

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);
}

【讨论】:

  • 我实际上需要一个 URL,因为它不是一个应用程序。那它是什么样子的呢?
  • 我无法帮助您,但是将其作为普通 URL 应该默认为他们选择的浏览器或打开一个选择器窗口(无论他们选择了哪个),这是 Android 的正常过程。
  • 嗨,我想在 chrome 浏览器中加载一个 html 页面,但它没有呈现 intent.setData(Uri.parse("file://" + Environment.getExternalStorageDirectory() + "/Test_4 .html"));
  • 如何用 javascript 做到这一点?
【解决方案2】:

这是一个没有try catch,的解决方案,如果安装了chrome,它将被使用。否则会转到设备默认

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);
}

【讨论】:

    【解决方案3】:

    最好的办法是检测用户浏览器

    alert(navigator.userAgent);
    

    并取决于条件语句

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

    并基于此使用 BOM API 来更新窗口位置

    window.location.href = 'googlechrome://navigate?url='+ link;
    

    【讨论】:

    【解决方案4】:

    我打开我的安全浏览器应用程序并从 Google play 获取包名称,同样你也可以默认打开 chrome:

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("http://Your URL"));
    intent.setPackage("com.cloudacl");  // package of SafeBrowser App 
    startActivity(intent);
    

    你可以用这个com.android.chrome替换包com.cloudacl来打开chrome。

    【讨论】:

      【解决方案5】:

      我正在使用以下代码从 Android 应用打开 Chrome browser

      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);
      }
      

      【讨论】:

        【解决方案6】:

        Android Kotlin

        试试下面的代码,了解在 kotlin 中使用 chrome 浏览器的意图。

        val uri = Uri.parse("googlechrome://navigate?url="+"https://stackoverflow.com/")
        val i = Intent(Intent.ACTION_VIEW, uri)
        if (i.resolveActivity(this@MainActivity.packageManager) == null) {
           i.data = Uri.parse("https://stackoverflow.com/")
        }
        this@MainActivity.startActivity(i)
        

        【讨论】:

          【解决方案7】:

          你的 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"
          />
          

          你的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");
              }
          }
          

          【讨论】:

          • 这也不能回答我的问题。这不适用于应用程序。它正在从浏览器打开一个应用程序。我无权访问网络视图。
          【解决方案8】:

          它对我有用:

          try {
             Intent intent = new Intent(Intent.ACTION_VIEW);
             intent.setData(Uri.parse(url));
             intent.setPackage("com.android.chrome");
             activity.startActivity(intent);
          } catch (ActivityNotFoundException e) {
             // chrome app not install
          }
          

          【讨论】:

            【解决方案9】:

            上面的 Intent 解决方案似乎不再有效。

            以下对我有用..

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2017-08-19
              • 2017-12-22
              • 1970-01-01
              • 2017-01-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多