编辑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 /协议处理相关推荐

  1. android notification 自定义声音,Android和iOS自定义通知声音

    Android 自定义通知声音 在安卓开发中.很多时候要使用通知提醒用户.那么使用通知就会设计到通知的提示音.那么这篇文章就和大家一起讨论一下提示音的问题 1.自定义声音  声音文件放在ram目录下, ...

  2. Android底部日期控件,Android开发中实现IOS风格底部选择器(支持时间 日期 自定义)...

    本文Github代码链接 先上图吧: 这是笔者最近一个项目一直再用的一个选择器库,自己也在其中做了修改,并决定持续维护下去. 先看使用方法: 日期选择: private void showDateDi ...

  3. Android 最简单仿IOS菊花加载样式,自定义Loading加载View

    自定义菊花旋转加载view,可自定义半径大小,旋转view个数.颜色等,具体代码如下,可直接使用 public class LoadingView extends View {private Rect ...

  4. iOS自定义视图:阅读并同意注册协议 【用户协议及隐私政策入口】

    文章目录 前言 I .用户协议及隐私政策的超链接功能实现方式 1.1 使用富文本API `NSLinkAttributeName` 实现超链接功能 1.2 使用按钮处理点击事件实现超链接功能 II. ...

  5. android页面跳转时获取地址栏,Android 利用scheme页面内跳转协议进行跳转

    什么是 URL Scheme? android中的scheme是一种页面内跳转协议. 通过定义自己的scheme协议,可以非常方便跳转app中的各个页面: 通过scheme协议,服务器可以定制化告诉A ...

  6. android h5页面跳转,android H5 应用内跳转Scheme协议

    什么是URL Scheme 概述: android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面:通过scheme协议 ...

  7. android 自定义推流器,Android直播实现 Android端推流、播放

    最近想实现一个Android直播,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代码 ...

  8. Android与物联网设备通信-自定义报文与字节序

    前几节我们把网络通信中的基础都过了一遍,今天真正开始秀操作了.本节主要讲解如何在应用层上去定义报文的结构体.良好的报文设计会让今后的业务扩展变得轻松.顺带会讲解一下字节序. 可以发现最近的章节都把两个 ...

  9. android方框验证码,Android自定义方框EditText注册验证码

    先来个效果图让大家看一看,现在好多app都用类似的注册页 实现思路 用一个透明的EditText与四个TextView重叠,并给TextView设置默认背景 第4个TextView输入完成后,要设置回 ...

最新文章

  1. 【Boost】noncopyable:不可拷贝
  2. Unity3d游戏开发之漫游场景的制作
  3. 对硬连接与软件连接的理解
  4. 1.13 抽象类和接口的区别
  5. 可疑文件_特制的ZIP文件能够绕过电子邮件安全网关
  6. 毫秒级百万数据分页存储过程
  7. Modularity(模块化-CMD规范)
  8. Log4net系统日志
  9. repo start master --all 和repo start --all master区别
  10. hp t410微型计算机使用,HP 发表新款 t410 AIO Smart Zero 精简型电脑,仅需网络线即可作为电源驱动使用...
  11. JProfiler11安装,选择IDE
  12. 自动锁定计算机怎么设置,win10如何设置自动锁定屏幕_win10设置自动锁屏的步骤...
  13. 是什么的简称_全国各地区车牌号简称,说说你们那的车牌是什么?
  14. 鼠标自动点击器linux,鼠标自动点击器PC版下载
  15. 第三次打卡 特征工程
  16. 模拟卷Leetcode【普通】729. 我的日程安排表 I
  17. 步步学习自定义View:Hencoder 精简版学习笔记(一)
  18. Codevs 1066 引水入城 2010年NOIP全国联赛提高组
  19. OS轮转调度算法RR的C++实现
  20. 未知参数休哈特matlab,未知异常诊断,Unknown exception diagnosis,音标,读音,翻译,英文例句,英语词典...

热门文章

  1. CommonLibrary——框架通用工具库
  2. C/C++:copy control (拷贝控制)
  3. C#笔记02 变量、数据类型
  4. SQL Server内存架构基础
  5. html微软雅黑字体模糊,如何解决WinXP下微软雅黑字体不清晰的问题
  6. SQL Server 数据类型陷阱
  7. linux socket 模式,pythonsockets:如何在linux中启用混杂模式
  8. 图解CSS中padding、margin、border的区别及使用
  9. 举例说明TCP/IP
  10. Qt5 for linux离线安装工具下载地址