如何从内置Web浏览器中的代码而不是在我的应用程序中打开URL?
我试过这个:
try {
Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(download_link));
startActivity(myIntent);
} catch (ActivityNotFoundException e) {
Toast.makeText(this, "No application can handle this request."
+ " Please install a webbrowser", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
但我有一个例外:
No activity found to handle Intent{action=android.intent.action.VIEW data =www.google.com
29 回答
在2.3,我有更好的运气
区别在于使用
Intent.ACTION_VIEW
而不是字符串"android.intent.action.VIEW"
检查您的网址是否正确 . 对我来说,在url之前有一个不需要的空间 .
这种方法使用一种方法,允许您输入任何String而不是固定输入 . 如果重复使用多次,这会保存一些代码行,因为您只需要三行来调用该方法 .
使用此方法使其普遍可用 . IT不必放在特定的活动中,因为您可以像这样使用它:
或者,如果要在活动之外启动它,只需在活动实例上调用startActivity:
正如在这两个代码块中看到的那样,存在空检查 . 如果没有应用程序来处理意图,则返回null .
如果没有定义协议,此方法默认为HTTP,因为有些网站没有SSL证书(HTTPS连接需要什么),如果您尝试使用HTTPS并且不存在,那么这些方法将停止工作 . 任何网站仍然可以强制使用HTTPS,因此无论哪种方式,这些方都会以HTTPS为您
由于此方法使用外部资源来显示页面,因此您无需声明INternet权限 . 显示网页的应用必须这样做
就像其他人编写的解决方案(工作正常)一样,我想回答相同的问题,但我认为大多数人更愿意使用 .
如果您希望应用程序开始在新任务中打开,而不是您自己的任务,而不是停留在同一堆栈上,您可以使用以下代码:
如果你想向用户显示所有浏览器列表的对话,那么他可以选择首选,这里是示例代码:
你也可以这样走
在xml中:
在java代码中:
在Manifest中别忘了添加互联网权限......
在您的try块中,粘贴以下代码,Android Intent直接使用URI(统一资源标识符)括号内的链接来识别链接的位置 .
你可以试试这个:
由于
Api level 1
(Android 1.0),android.webkit.URLUtil
方法guessUrl(String)完全正常(即使file://
或data://
) . 用于:在Activity调用中:
查看完整guessUrl code了解更多信息 .
Chrome自定义标签现已推出:
第一步是将自定义选项卡支持库添加到build.gradle文件中:
然后,打开chrome自定义标签:
欲了解更多信息:https://developer.chrome.com/multidevice/android/customtabs
MarkB的回答是对的 . 在我的情况下,我使用的是Xamarin,与C#和Xamarin一起使用的代码是:
此信息取自:https://developer.xamarin.com/recipes/android/fundamentals/intent/open_a_webpage_in_the_browser_application/
Basic Introduction:
https:// 正在将 https:// 用于"code",以便中间没有人可以读取它们 . 这可以保护您的信息免受黑客攻击 .
http:// 仅使用共享目的,它不安全 .
About Your Problem:
XML designing:
Activity Designing:
Android Manifest.Xml 权限:
实现这个时你遇到问题:
获得 Manifest 权限
url之间的多余空间
检查 url's 是否正确
试试吧......为我工作!
xml code :-
如果要使用XML而不是以编程方式执行此操作,可以在TextView上使用:
实现这一目标的常用方法是使用下一个代码:
可以改成短代码版本......
或:
最短! :
快乐的编码!
Webview可用于在您的应用程序中加载Url . 可以在文本视图中从用户提供URL,也可以对其进行硬编码 .
另外不要忘记AndroidManifest中的互联网权限 .
Simple, website view via intent,
使用这个简单的代码在Android应用程序中查看您的网站 .
Add internet permission in manifest file,
// OnClick Listener
//你的Util方法
短代码版本......
根据Mark B的回答和下面的评论:
我认为这是最好的
将下面的代码放入全局类中
试试这个OmegaIntentBuilder
好的,我检查了每个答案,但是哪个应用程序与用户想要使用的相同URL进行了深层链接?
今天我得到了这个案子,答案是
browserIntent.setPackage("browser_package_name");
例如:
谢谢!
试试这个:
或者如果你想在你的活动中打开网页浏览器,那么这样做:
如果你想在浏览器中使用缩放控制,那么你可以使用:
other option In Load Url in Same Application using Webview
试试这个:
这对我来说很好 .
至于缺少的“http://”我会做这样的事情:
我也可能预先填充用户使用“http://”键入URL的EditText .
简单回答
你可以看到the official sample from Android Developer .
它是如何工作的
请看一下Intent的构造函数:
您可以将
android.net.Uri
实例传递给第二个参数,并根据给定的数据URL创建新的Intent .然后,只需调用
startActivity(Intent intent)
即可启动一个新的Activity,它与给定URL的Intent捆绑在一起 .我需要if check语句吗?
是 . docs说:
奖金
您可以在创建Intent实例时在一行中编写,如下所示: