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/intents, here on this it's for the zxing app, not for google chrome.
<a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end"> Take a QR code </a>
I want same syntax for Google Chrome. Currently I am opening link in the webview, on click on link I want to specify a intent of chrome there like zxing.
In other words,
I have a webview in which I opened a particular URL then after if user click on "XYZ" or something in the webview there then it should open google chrome. So for this i will add some chrome intent tag in the html that's syntax I am looking –
Please share if you know syntax for opening Google Chrome any hyperlink.
Thanks in advance.
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!
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;
}
}
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..
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.
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;
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);
}
}
}