Android打开网页(android内置浏览器+webView)
2017-11-21 22:36
555 查看
Android打开网页
1 通过系统自带的浏览器访问// 打开网址 这个是通过打开android自带的浏览器进行的打开网址 Uri uri = Uri.parse(str); Intent intent = new Intent(Intent.ACTION_VIEW, uri); if (intent.resolveActivity(getPackageManager()) != null) { // 网址正确 跳转成功 startActivity(intent); } else { //网址不正确 跳转失败 提示错误 Toast.makeText(MainActivity.this, "网址输入错误,请重新输入!", Toast.LENGTH_SHORT).show(); }
2 通过APP内部打开网页,WebView控件
XML中
<WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" />
java中
private WebView webView; webView = findViewById(R.id.webView); initWebView(); private void initWebView() { //加载一个网页: webView.loadUrl("");
WebViewClient类
webView.setWebViewClient(new WebViewClient() { // 复写shouldOverrideUrlLoading()方法,使得打开网页时不调用系统浏览器, 而是在本WebView中显示 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; //开始载入页面调用的,我们可以设定一个loading的页面,告诉用户程序在等待网络响应。 } // 当每一个页面加载出来时的动作 可以获取当前页面的信息 如URL 如标题等 @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { //设定加载开始的操作 // 如可以得到当前的URL //current_url=view.getUrl(); } @Override public void onPageFinished(WebView view, String url) { //设定加载结束的操作 } public boolean onLoadResource(WebView view, String url) { //设定加载资源的操作,在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。 } //加载页面的服务器出现错误时(如404)调用 使用自定义的错误界面 更符合软件的整体设计风格 //步骤1:写一个html文件(error_handle.html),用于出错时展示给用户看的提示页面 //步骤2:将该html文件放置到代码根目录的assets文件夹下 //步骤3:复写WebViewClient的onRecievedError方法 //该方法传回了错误码,根据错误类型可以进行不同的错误分类处理 @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){ switch(errorCode) { case HttpStatus.SC_NOT_FOUND: view.loadUrl("file:///android_assets/error_handle.html"); break; } } //处理https请求 @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed(); //表示等待证书响应 // handler.cancel(); //表示挂起连接,为默认方式 // handler.handleMessage(null); //可做其他处理 } });
WebChromeClient类
辅助 WebView 处理 Javascript 的对话框,网站图标,网站标题等
webview.setWebChromeClient(new WebChromeClient(){ //获得网页的加载进度并显示 @Override public void onProgressChanged(WebView view, int newProgress) { if (newProgress < 100) { String progress = newProgress + "%"; // 这里的progress为progress控件 progress.setText(progress); } else { } //获取Web页中的标题 @Override public void onReceivedTitle(WebView view, String title) { titleview.setText(title); // 还有设计JS界面的对话框 警示框等 });
获取WebView当前网址
webView.getUrl();
javascript支持
要使得到的内容的某些按钮可以被点击,对话框的确认按钮,列表选择,返回等按钮可以使用,则添加
javascript支持
webView.getSettings().setJavaScriptEnabled(true);
参考链接:http://www.jianshu.com/p/3c94ae673e2a
相关文章推荐
- webview内网页的连接内置打开,不用手机的浏览器打开;设置网页进度条progress
- Android中的WebView打开网页,以及对当前网页的缩放等,网络连接判断
- 再识Intent-实现调用Android内置浏览器打开网页
- Android WebView的使用(禁止超链接调用其他浏览器 设置滚动条 禁止横竖屏切换重新加载网页 )
- Android使用内置WebView打开TextView超链接的实现方法
- Android WebView或手机浏览器打开连接问题解决办法总结
- Android在网页下(WebView中运用HTML)点击按钮打开本地手机应用程序
- Android学习之利用WebView打开网页
- 客户端中webview的网页判断是不是在客户端内部,还是在浏览器打开
- 【安卓小技巧】WebView设置在本页面打开网页,而不是启动浏览器打开
- Android之WebView 防止调用系统浏览器打开页面
- 【android进阶】Fragment内放置WebView,监听返回键,并返回之前打开的网页
- android 打开浏览器 WebView
- [Android] 使用 WebView 加载网页而不调用外部浏览器
- 【android】只让本应用程序的webview加载网页而不调用外部浏览器的办法
- Android使用WebView.loadUri()打开网页的方法
- Webview展示网页,超链接使用默认浏览器打开
- 在android中举例说明如何用WebView.loadUri();来打开网页
- Android【WebView】 防止调用系统浏览器打开页面 看了好多朋友写的代码我在整理了
- Android 浏览网页:WebView 嵌入浏览器(浏览历史返回、自定义加载失败界面、支持缩放、获取标题栏)