Android WebView 拦截自定义协议
URL 语法
1 public static class CommonWebViewClient extends WebViewClient { @Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.d("leo", "[webViewUrl]" + url);
if (url.startsWith("tel")) {// 机构电话
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse(url));
view.getContext().startActivity(intent);
return true;
}
Uri uri = Uri.parse(url);
if ("baonajia".equals(uri.getScheme())) {
if ("organization".equals(uri.getHost())) {// 课程详情跳转到机构详情
Organization organization = new Organization();
organization.setId(uri.getQueryParameter("organization_id"));
organization.setName(uri.getQueryParameter("organization_name"));
Intent intent = new Intent(view.getContext(), OrganizationDetailActivity.class);
intent.putExtra(Const.EXTRA_ORG, organization);
view.getContext().startActivity(intent);
} else if ("course".equals(uri.getHost())) {// 机构详情跳转到课程详情
new CourseTask(view, uri.getQueryParameter("course_id")).execute();
} else if ("school".equals(uri.getHost())) {// 机构详情跳转到校区列表
String orgId = uri.getQueryParameter("organization_id");
Intent intent = new Intent(view.getContext(), SchoolListActivity.class);
intent.putExtra(Const.EXTRA_ORG_ID, orgId);
view.getContext().startActivity(intent);
} else if ("album".equals(uri.getHost())) {// 机构详情跳转到相册列表
String orgId = uri.getQueryParameter("organization_id");
Intent intent = new Intent(view.getContext(), PhotoAlbumListActivity.class);
intent.putExtra(Const.EXTRA_ORG_ID, orgId);
view.getContext().startActivity(intent);
} return true;
} else {
view.loadUrl(url);
return true;
}
} @Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Log.e(TAG,
String.format("errorCode: %s, description: %s, when open: %s", errorCode, description, failingUrl));
view.loadUrl(URLCenter.getError());
}
}
Android WebView 拦截自定义协议的更多相关文章
- Android webView输出自定义网页
这次来使用webview输出网页型数据.因为这样的数据好使用富文本编辑器,有各种各样的拓展. 上代码: package controller.hzl.com.testcall; import andr ...
- android deep link(深度链接)与自定义协议!
此自定义仅供参考! 首先打开androidManifest.xml 在MainActivity中添加如下内容: <activity android:name=".MainActivit ...
- Android为TV端助力 deep link(深度链接)与自定义协议!
此自定义仅供参考! 首先打开androidManifest.xml 在MainActivity中添加如下内容: <activity android:name=".MainActivit ...
- 移动开发首页业界资讯移动应用平台技术专题 输入您要搜索的内容 基于Java Socket的自定义协议,实现Android与服务器的长连接(二)
在阅读本文前需要对socket以及自定义协议有一个基本的了解,可以先查看上一篇文章<基于Java Socket的自定义协议,实现Android与服务器的长连接(一)>学习相关的基础知识点. ...
- Android WebView常见问题及解决方案汇总
Android WebView常见问题解决方案汇总: 就目前而言,如何应对版本的频繁更新呢,又如何灵活多变地展示我们的界面呢,这又涉及到了web app与native app之间孰优孰劣的争论. 于是 ...
- Android WebView常见问题解决方案汇总
问题目录: 1.为WebView自定义错误显示界面: 2.WebView cookies清理 3.清理cache 和历史记录 4.判断WebView是否已经滚动到页面底端 5.URL拦截 6.处理We ...
- android WebView详解,常见漏洞详解和安全源码
这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析. 转载请注明出处:http://blog.csdn.net/se ...
- Android之Android WebView常见问题及解决方案汇总
如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456 Android WebView常见问题解决方案汇总: 就目前而言,如何应对版本的频繁更新呢,又如何灵活多变 ...
- Android WebView 常见问题
1.为WebView自定义错误显示界面: /** * 显示自定义错误提示页面,用一个View覆盖在WebView */ protected void showErrorPage() { LinearL ...
随机推荐
- RDS记录
rdsafbnr32uzayn.mysql.rds.aliyuncs.com r7fysfqs90r74cm6
- Android文本读写
//写文件操作 public void writeFileData(String fileName, String message){ try{ FileOut ...
- CSU 1333 Funny Car Racing (最短路)
题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1333 解题报告:一个图里面有n个点和m条单向边,注意是单向边,然后每条路开a秒关闭b秒 ...
- iOS/Android/Web Url Encode空格處理 原文連結:http://read01.com/3gDO.html
iOS/Android/Web Url Encode空格處理 原文連結:http://read01.com/3gDO.html 前言 這裡只是講一個故事,一個發生在我身上的真實的故事.曾經,我以為搞加 ...
- 加载状态为complete时移除loading效果
一.JS代码: //获取浏览器页面可见高度和宽度 var _PageHeight = document.documentElement.clientHeight, _PageWidth = docum ...
- 怎样在myEclipse中使用debug调试程序?
怎样在myEclipse中使用debug调试程序? 最基本的操作是: 1.首先在一个java文件中设断点,然后debug as-->open debug Dialog,然后在对话框中选类 ...
- Python自动化之select解析
select原理 网络通信被Unix系统抽象为文件的读写,通常是一个设备,由设备驱动程序提供,驱动可以知道自身的数据是否可用.支持阻塞操作的设备驱动通常会实现一组自身的等待队列,如读/写等待队列用于支 ...
- maven简单配置
maven-3.3.9下载 Maven是一个项目管理和综合工具.Maven提供了开发人员构建一个完整的生命周期框架.开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周 ...
- 3.3---集合栈(CC150)
思路:注意一下别写错add还是remove public class SetOfStacks { public static ArrayList<ArrayList<Integer> ...
- centos 无线网卡安装,网卡rtl8188ee
驱动: http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=48&PFid=48&Leve ...