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 ...
随机推荐
- 在spring容器中定义初始化和销毁bean前所做的操作,有三种方式
1.使用注解,通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 package com.luoq.test.annotation.init; ...
- iOS开发——UI进阶篇(十三)UITabBarController简单使用,qq主流框架
一.UITabBarController简单使用 // 程序加载完毕 - (BOOL)application:(UIApplication *)application didFinishLaunchi ...
- leetcode 236. Lowest Common Ancestor of a Binary Tree
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According ...
- [转载]MySQL5.5 配置文件 my.ini 1067错误
原文链接:http://blog.csdn.net/xiaochunyong/article/details/7438200 解压mysql-5.5.22-win32.zip后的目录中有5个my-xx ...
- 获取SHA1和MD5
首先:1.我们进入到通过cmd打开控制台,进入cmd定位到.android文件夹下.如下图: 2.输入keytool -list -v -keystore debug.keystore得到三种指纹证书 ...
- git 教程(10)--添加远程库
现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举 ...
- Delphi实现窗体内嵌其他应用程序窗体
实现原理是启动一个应用程序,通过ProcessID得到窗体句柄,然后对其设定父窗体句柄为本程序某控件句柄(本例是窗体内一个Panel的句柄),这样就达成了内嵌的效果. 本文实现的是内嵌一个记事本程序, ...
- UICollectionView + AFNetWorking 异步加载,局部刷新.
最近在做的项目需要cell里面的数据需要和后台实时交互.而collectionview reload会整体刷新. //m层 发送通知 [[NSNotificationCenter defaultCen ...
- 在Coding.net创建项目开发
先在Coding上创建个项目 只要建个项目推送代码余额就会增加,积累码币可以在商城里兑换相应的商品.为了码币,我也应该建个项目搞搞啊- 记录下过程. 先在Coding上创建个项目 现在是这样,我 ...
- 9.1---上楼梯(CC150)
注意:错误主要在溢出问题上.所以不设置int,而是long. public static int countWays(int n){ if(n == 1) return 1; if(n == 2) r ...