我有这样的代码:
Button bluehost = (Button)findViewById(R.id.bluehost);
bluehost.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
Intent browserIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://www.bluehost.com/track/businessplan/"));
startActivity(browserIntent);
}
});
从技术上讲,此代码可以将用户发送到该url,但由于某些原因,此特定的URL会转到此代码中找不到的页面,但如果您将此url放入浏览器中,则会呈现该页面。但当从应用程序中完成时,它会转到页面未找到。我正在使用Android Safari浏览器进行测试。
是因为URL上的重定向吗?我该怎么解决这个问题呢?
我的清单文件中有这一行:
<uses-permission android:name="android.permission.INTERNET" />
注意:
互联网连接不是问题所在。此代码适用于其他URL。这个特定的链接发生了一些奇怪的事情。
谢谢!
发布于 2016-01-04 12:51:41
如果你在Android Safari浏览器中得到Page not found错误,那么你可以在很多设备都有的chrome浏览器中打开链接,或者给用户选择浏览器应用程序的选项,这将在选定的浏览器中打开链接。
要打开链接到谷歌浏览器,你必须检查它是否安装在设备上。为此,您可以使用此方法检查是否安装了chrome浏览器。
private boolean isPackageInstalled(String packagename, Context context) {
PackageManager pm = context.getPackageManager();
try {
pm.getPackageInfo(packagename, PackageManager.GET_ACTIVITIES);
return true;
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}
chrome浏览器的包名是com.android.chrome
。您必须使用browserIntent.setPackage("com.android.chrome");
将其设置为包名称
为了向用户显示选项以选择应用程序,您可以像这样创建:
Intent chooserIntent = Intent.createChooser(browserIntent, "Select Application");
startActivity(chooserIntent);
这是你的最终代码:
Intent browserIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://www.bluehost.com/track/businessplan/"));
boolean isChromeInstalled = isPackageInstalled("com.android.chrome", YourActivityName.this);
if (isChromeInstalled) {
browserIntent.setPackage("com.android.chrome");
startActivity(browserIntent);
}else{
Intent chooserIntent = Intent.createChooser(browserIntent, "Select Application");
startActivity(chooserIntent);
}
但请注意,如果您提供了选择浏览器应用程序的选项,那么Safari浏览器也会列出。
或者,您也可以选择使用Stephan Branczyk回答的Webview
我希望这对你有帮助。
发布于 2016-01-08 12:01:58
如果重定向不起作用,您的代码将在设备浏览器中打开url,问题肯定不在您的代码上。可能是因为网站中的重定向不起作用,或者您使用的浏览器无法执行此重定向。在你的情况下,我猜是你使用的浏览器不能执行重定向。
发布于 2016-01-06 11:45:25
Use this
Uri uri = Uri.parse( "https://www.bluehost.com/track/businessplan/“);startActivity(Intent.createChooser(新意图(Intent.ACTION_VIEW,uri),”选择浏览器“));
https://stackoverflow.com/questions/34562119
复制相似问题