App间的通信需要通过URL Scheme来实现。
1、需要为待启动的应用设置一个系统唯一标志字符串,避免与系统自带的标志字符串重名。例如:mailto、tel、facetime、sms、
http://maps.apple.com/等等。
2、在info中设置该应用的标志字符串
3、在AppDelegate中设置处理url的方法
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {
println(url.query!)
UIAlertView(title: "test", message: "opened", delegate: nil, cancelButtonTitle: "OK").show()
return true
在这个方法中,url为发送请求方的url,sourceApplication为发送请求的应用bundle Identifier,在方法实现中使用url.query来获取传入的参数。若发送请求方发送的url为iossocket://?name=iossocket&tel=1371234567,那么url.query为name=iossocket&tel=1371234567。
4、对应请求发送方,发送该url时调用方法如下所示:
func openUrl() {
var url: NSURL = NSURL(string: "iossocket://?name=iossocket&phone=1371234567")!
if UIApplication.sharedApplication().canOpenURL(url) {
UIApplication.sharedApplication().openURL(url)
} else {
//提示用户去下载该应用
5、该url同时也可以通过Safari来进行发送。
2019独角兽企业重金招聘Python工程师标准>>> ...
URL Scheme的作用
我们都知道苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的。但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便app之间互相调用而设计的。我们可以通过系统的OpenURL来打开该app,并可以传递一些参数。
例如:你在Safari里输入www.alipay.com,就可以直接打开你的支付宝app,前提是你的手机装了支付宝。如果你没有装支付宝,应该显示的是支付宝下载界面,点击会跳到AppStore的支付宝下载界面。
URL Scheme必须能唯一标识一个APP,如果你设置的URL Scheme与别的APP的
我之前写过一篇文章:Swift - URL schemes的使用样例(如:在Safari中打开App)。介绍通过自定义的URL Scheme,实现从外部浏览器或外部应用打开我们的应用。
同样的,如果想从本地应用中跳转到其他的第三方应用并传值。同样是通过URL Scheme实现。
一,使用样例
常用的第三方应用都定义了不同的URL Scheme,我们通过UIApplicatio...
UrlScheme
UrlScheme 是系统提供的一种机制,它可以由应用程序注册,然后其他程序通过UrlScheme 来调用该应用程序,就如同打开一个网站地址。
UrlScheme 目前已经被iOS、Android、windows、OS X等系统支持。
通过 UrlScheme 我们可以打开指定应用并传参。
实际用例:
我们的app中对一个店铺进行了位置采集,点击这个店铺的导航按键时,我们就可以使用高德或百度地图的UrlScheme打开地图应用并导航。
//打开百度地图导航
UrlScheme ='b
热点总是一时的,借此炒作的人或许已达成目的。作为一名iOS开发程序员,我们只能继续写代码,改变世界。
上一篇文章讲到:Xcode6.4注册URLScheme步骤详解,这一篇继续来看看URLScheme传递参数。
通过注册的URLScheme向目标APP传递参数
通过URLScheme启动APP很简单就可以做到,但有时候我们想在启动APP的时候传递一些参数,这个时候我们就可以通过URLSche
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionaryUIApplicationOpenURLOptionsKey,id>
*)options{}
其他应用(后面以下称为APPB)通过 openURL的方法打开这个方法所在的app(这个以下称为APPA)后,这个方法就会被调用。
上图 : 在plist文件里面设置。
URL identifier 一般为反域名+项目名称 (尽可能保证少重复)
URL Schemes是一个数组。一个APP可以添加多个。该参数为跳转时使用的标识。
1:跳转safari比较简单
1 NSString *iTunesLink = @"http://www.xxxx.com";
2 [[UIApplication ...
1,在A项目中需要下面的配置然后在项目A中的AppDelegate中- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options{
NSLog(@"===%@==",[ur...
public extension URL {
var urlParameters: [String: String]? {
guard let components = URLComponents(url: self, resolvingAgainstBaseURL: true),
let queryItems = components.queryItems else { return nil }
using System.Runtime.InteropServices;
[DllImport("__Internal")]
private static extern void _GetURLString ();
public static void GetURLString()
if(Applicati
URL Scheme跳转是一种在iOS中实现App之间跳转的方式。它可以通过在Safari或其他浏览器中输入特定的URL Scheme来启动目标App,并且可以通过在URL中添加自定义的参数来传递信息。URL Scheme的形式类似于网页,可以在Safari中输入类似"yourscheme://xxxxx"的URL来进行跳转。如果配置成功,则会弹出提示框询问是否访问该应用。
在iOS中,还有另一种常见的跳转方式叫做Universal Links。与URL Scheme不同,Universal Links是通过在网页上添加普通的超链接来实现跳转。当用户点击这个超链接时,会直接在对应的App内打开相关页面。相比URL Scheme,Universal Links更加方便,因为它不需要在URL中添加特定的Scheme,并且可以在App内部直接处理跳转逻辑。
总结起来,URL Scheme跳转是通过在浏览器中输入特定的URL Scheme来启动目标App并传递参数,而Universal Links是通过在网页上添加超链接来实现跳转到对应的App内部。两种方式都可以实现App之间的跳转,具体使用哪种方式取决于具体的需求和场景。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [IOS应用跳转URL scheme和Universal Links](https://blog.csdn.net/shaobing32/article/details/131170384)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
valgrind: failed to start tool 'memcheck' for platform 'amd64-linux': No such file or directory
程序猴-赛雷:
Oracle推进SCN系列:使用oradebug在mount状态下推进SCN
图像处理之基础---详解协方差与协方差矩阵
royaltyfourteen:
开发与研发:区别很大(上)
m0_65152724:
可移动磁盘显示0kb打不开怎么办
dintc: