android自定义协议,Android / iOS-自定义URI /协议处理
编辑5/2014,因为这似乎是一个受欢迎的问题,所以我在回答中添加了很多细节:
Android:
对于Android,请单击单击自定义URI时,请参阅意图过滤器以启动我的活动。
您使用一个意图过滤器:
这将附加到您要启动的活动。 例如:
然后,在您的活动中(如果未运行),将使用在Intent中传递的URI启动活动。
Intent intent = getIntent();
Uri openUri = intent.getData();
如果已经运行,则将在您的活动中调用onNewIntent(),并再次使用该URI。
最后,如果您想在本机应用程序中托管的UIWebView中处理自定义协议,则可以使用:
myWebView.setWebViewClient(new WebViewClient()
{
public Boolean shouldOverrideUrlLoading(WebView view, String url)
{
// inspect the url for your protocol
}
});
iOS:
对于iOS,请在iOS 4上使用URL(通过UIApplicationDelegate的handleOpenURL)启动应用程序,但在iOS 3.2下不能使用。
通过Info.plist键定义您的URL方案,类似于:
CFBundleURLTypes
CFBundleURLName
com.yourcompany.myapp
CFBundleURLSchemes
myapp
然后定义一个处理函数,以在您的应用程序委托中调用
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
// parse and validate the URL
}
如果要在本机应用程序中托管的UIWebViews中处理自定义协议,则可以使用UIWebViewDelegate方法:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *urlPath = [request URL];
if (navigationType == UIWebViewNavigationTypeLinkClicked)
{
// inspect the [URL scheme], validate
if ([[urlPath scheme] hasPrefix:@"myapp"])
{
...
}
}
}
}
对于WKWebView(iOS8 +),您可以改用WKNavigationDelegate和以下方法:
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
{
NSURL *urlPath = navigationAction.request.URL;
if (navigationAction.navigationType == WKNavigationTypeLinkActivated)
{
// inspect the [URL scheme], validate
if ([[urlPath scheme] hasPrefix:@"myapp"])
{
// ... handle the request
decisionHandler(WKNavigationActionPolicyCancel);
return;
}
}
//Pass back to the decision handler
decisionHandler(WKNavigationActionPolicyAllow);
}
android自定义协议,Android / iOS-自定义URI /协议处理相关推荐
- android notification 自定义声音,Android和iOS自定义通知声音
Android 自定义通知声音 在安卓开发中.很多时候要使用通知提醒用户.那么使用通知就会设计到通知的提示音.那么这篇文章就和大家一起讨论一下提示音的问题 1.自定义声音 声音文件放在ram目录下, ...
- Android底部日期控件,Android开发中实现IOS风格底部选择器(支持时间 日期 自定义)...
本文Github代码链接 先上图吧: 这是笔者最近一个项目一直再用的一个选择器库,自己也在其中做了修改,并决定持续维护下去. 先看使用方法: 日期选择: private void showDateDi ...
- Android 最简单仿IOS菊花加载样式,自定义Loading加载View
自定义菊花旋转加载view,可自定义半径大小,旋转view个数.颜色等,具体代码如下,可直接使用 public class LoadingView extends View {private Rect ...
- iOS自定义视图:阅读并同意注册协议 【用户协议及隐私政策入口】
文章目录 前言 I .用户协议及隐私政策的超链接功能实现方式 1.1 使用富文本API `NSLinkAttributeName` 实现超链接功能 1.2 使用按钮处理点击事件实现超链接功能 II. ...
- android页面跳转时获取地址栏,Android 利用scheme页面内跳转协议进行跳转
什么是 URL Scheme? android中的scheme是一种页面内跳转协议. 通过定义自己的scheme协议,可以非常方便跳转app中的各个页面: 通过scheme协议,服务器可以定制化告诉A ...
- android h5页面跳转,android H5 应用内跳转Scheme协议
什么是URL Scheme 概述: android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面:通过scheme协议 ...
- android 自定义推流器,Android直播实现 Android端推流、播放
最近想实现一个Android直播,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代码 ...
- Android与物联网设备通信-自定义报文与字节序
前几节我们把网络通信中的基础都过了一遍,今天真正开始秀操作了.本节主要讲解如何在应用层上去定义报文的结构体.良好的报文设计会让今后的业务扩展变得轻松.顺带会讲解一下字节序. 可以发现最近的章节都把两个 ...
- android方框验证码,Android自定义方框EditText注册验证码
先来个效果图让大家看一看,现在好多app都用类似的注册页 实现思路 用一个透明的EditText与四个TextView重叠,并给TextView设置默认背景 第4个TextView输入完成后,要设置回 ...
最新文章
- 【Boost】noncopyable:不可拷贝
- Unity3d游戏开发之漫游场景的制作
- 对硬连接与软件连接的理解
- 1.13 抽象类和接口的区别
- 可疑文件_特制的ZIP文件能够绕过电子邮件安全网关
- 毫秒级百万数据分页存储过程
- Modularity(模块化-CMD规范)
- Log4net系统日志
- repo start master --all 和repo start --all master区别
- hp t410微型计算机使用,HP 发表新款 t410 AIO Smart Zero 精简型电脑,仅需网络线即可作为电源驱动使用...
- JProfiler11安装,选择IDE
- 自动锁定计算机怎么设置,win10如何设置自动锁定屏幕_win10设置自动锁屏的步骤...
- 是什么的简称_全国各地区车牌号简称,说说你们那的车牌是什么?
- 鼠标自动点击器linux,鼠标自动点击器PC版下载
- 第三次打卡 特征工程
- 模拟卷Leetcode【普通】729. 我的日程安排表 I
- 步步学习自定义View:Hencoder 精简版学习笔记(一)
- Codevs 1066 引水入城 2010年NOIP全国联赛提高组
- OS轮转调度算法RR的C++实现
- 未知参数休哈特matlab,未知异常诊断,Unknown exception diagnosis,音标,读音,翻译,英文例句,英语词典...