您好我想在用户点击特定链接时从我的应用webview打开Chrome应用中的网站。我认为这是可能的https://developer.chrome.com/multidevice/android/intents,这是针对zxing应用程序的,而不是谷歌浏览器。
<a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end"> Take a QR code </a>
我想要谷歌Chrome的语法相同。目前我在webview中打开链接,点击链接我想指定一个像zxing那样的chrome意图。
换句话说, 我有一个webview,我打开了一个特定的URL然后用户点击&#34; XYZ&#34;或者在webview中的某些内容那么它应该打开谷歌浏览器。所以对于这个我将在html中添加一些chrome intent标签我正在寻找的语法 -
如果您知道打开Google Chrome任何超链接的语法,请分享。
提前致谢。
答案 0 :(得分:23)
您似乎正在寻找新的Android Intents链接,该链接将为设备创建链接的明确意图。
<a href="intent://<URL>#Intent;scheme=http;package=com.android.chrome;end">
适合我。 所以
<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">
将带您进入Chrome中的这个问题。 请注意,该方案是单独指定的,因此如果要启动https链接,则必须将方案更改为scheme = https
但正如大家所说的那样,明确的Chrome意图是一个非Android的事情。更好的方法是指定ACTION_VIEW操作,如下所示:
<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;">
谢谢,我今天学到了一些东西!
答案 1 :(得分:6)
下面的代码在webview中创建启动网址,包括Android中的intent://
网址。
@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;
}
}
答案 2 :(得分:1)
使用此:
String url = "http://www.example.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
希望这会有所帮助..
答案 3 :(得分:1)
我已经使用Nexus 6测试了以下代码,安装了Chrome和Mozilaa,效果很好,
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);
如果您的设备中未安装Chrome,则会出错。所以检查包装的可用性。
答案 4 :(得分:0)
Google Chrome应用包名称为com.android.chrome,因此请使用以下概念准备好您的Intent网址
intent:
//scan/
#Intent;
package=com.android.chrome;
scheme=zxing;
end;
答案 5 :(得分:0)
此代码用于从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);
}
}
}