iOS开发 - 应用内打开第三方应用并传值

首先说下这个功能, 应该都有接触过。

比方,你下载了一个电子书,然后选择打开方式的时候,可能会看到你手机中已经安装的阅读类App。

或者,你的QQ收到了某个文件,你也能够选择本地的应用来打开。

那这种功能,是怎么实现的呢?

简单来说。就是调用URL来实现第三方应用的开启。

首先,被打开的应用须要提供这个功能, 也就是,它须要注冊一个 URL Schemes,供第三方使用。

假设你想你的应用被调用, 你能够这样设置。

在 xxxx info.plist 文件里, 加入例如以下属性

相似这样:

注意, 这里的URL Schemes必填, URL identifier选填。

另外,URL Schemes建议都小写,由于之后接收到数据的时候,不区分大写和小写, 都是转为小写。

规定的格式是   URL Schemes://URL identifier

之后, 你须要在 Appdelegate.m中加入例如以下代码, 来处理接受到请求后做出的处理

//处理URL请求
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    NSLog(@"%@", url);

    if ([[url scheme] isEqualToString:@"myurltest"])
    {
        //处理链接
        NSString *text = [[url host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        UIAlertView *myAlert = [[UIAlertView alloc]initWithTitle:@"新消息" message:text delegate:self cancelButtonTitle:@"知道了" otherButtonTitles: nil];
        [myAlert show];

        return YES;
    }

    return NO;
}

这里我写了个示范, 推断是否是打开本应用的URL, 假设是, 就弹出一个警告框,显示传来的数据。

当然,传来的数据要怎么处理, 那看你自己了。

之后, 第三方应用就能够直接调用打开它了。

我们做个简单示范, 用Safari来直接打开。

这里输入myurltest://hello   表示打开的应用的URL Schemes是 myurltest, 传入的数据是hello

当然, 在应用中打开,我们能够使用例如以下方法:

NSURL *url  = [NSURL URLWithString:@"myurltest:"];
[[UIApplication sharedApplication] openURL:url];

另外, 顺便Mark一下一些已知的应用的URL Schemes

你所知道好玩有趣的 iOS URL schemes 有哪些?

时间: 2024-10-02 22:11:18

iOS开发 - 应用内打开第三方应用并传值的相关文章

iOS开发系列——内购、GameCenter、iCloud、Passbook系统服务开发汇总

社交 Social 现在很多应用都内置“社交分享”功能,可以将看到的新闻.博客.广告等内容分享到微博.微信.QQ.空间等,其实从iOS6.0开始苹果官方就内置了Social.framework专门来实现社交分享功能,利用这个框架开发者只需要几句代码就可以实现内容分享.下面就以一个分享到新浪微博的功能为例来演示Social框架的应用,整个过程分为:创建内容编辑控制器,设置分享内容(文本内容.图片.超链接等),设置发送(或取消)后的回调事件,展示控制器. 程序代码: // // ViewContro

ionic3 应用内打开第三方地图导航 百度 高德

1.安装检测第三方APP是否存在的插件 cordova plugin add cordova-plugin-appavailability --save npm install --save @ionic-native/app-availability                   这个可以根据项目的版本兼容性选择安装固定的版本号 我安装的是@3.4.2 在页面引入 AppAvailability 并进行判断  因为ios和android的包名不一样 所以进行了判断 import { Ap

IOS开发使用CocoaPods进行第三方资源管理

一.Cocoa Pods简介 Cocoa Pods是一个负责管理iOS项目中第三方资源的工具,它的项目源代码在Github上面管理,得益于活跃的Github开发者社区大神们的不断维护,从2011年8月该项目启动以来,它保持活跃更新.开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间. 在我们有了CocoaPods这个工具之后,只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后在命令行执行$pod install命令,C

iOS 开发的非常有用 第三方库

ios中那些好用的第三方库 ios 里面有很多很多好用的第三方框架,有许多是项目中必用的,本文主要来写一些常用的ios第三方库的使用 (一)Masonry Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持 iOS 和 Max OS X. Masonry是一个用代码写ios或os界面的库,可以代替Auto layout. Masonry的github地址:https://github.com/SnapKit/Maso

iOS开发中用到的第三方库概览

前言:记录一下使用过和接触过的第三方库,重要程度与顺序无关 网络请求: AFNetworking:AFNetworking is a delightful networking library for iOS and Mac OS X. YTKNetwork:YTKNetwork is a high level request util based on AFNetworking. 转模型 MJExtension:A fast, convenient and nonintrusive conve

IOS开发中有用的第三方库

#Objective-C中最受瞩目库 [链接](https://github.com/languages??/Objective-C/most_watched) * [three20](https://github.com/facebook/three20) * faebook的320库** * [AFNetworking](https://github.com/AFNetworking/AFNetworking) *网络库** * [MBProgressHUD](https://github.

【iOS开发-105】SQLite第三方框架FMDB的使用,以及使用FMDatabaseQueue保证线程安全

(1)下载地址:https://github.com/ccgus/fmdb (2)注意点 --语句可以带分号":",也可以省略分号. --同样需要添加"libsqlite3.dylib"库才能使用. --移动端的开发中,一般不关闭数据库,即不怎么使用[self.db close];,因为每次重新打开比较耗性能,且每次程序关闭时数据库自然会同时关闭. (3)用法 #import "ViewController.h" #import "FM

iOS开发——项目实战总结&第三方支付遇到的坑

第三方支付遇到的坑 "_sqlite3_step", referenced from: _execute_prepared_config_stmt in libWeChatSDK.a(MTAWXOStore.o) _execute_prepared_events_stmt in libWeChatSDK.a(MTAWXOStore.o) "_inflate", referenced from: +[MTAWXOHelper GUnzip:Out:] in libWe

iOS开发经常使用的第三方开源类库、组件

1.AFNetworking AFNetworking 采用 NSURLConnection + NSOperation, 主要方便与服务端 API 进行数据交换, 操作简单, 功能强大, 现在许多人都用它取代 ASIHTTPRequest 2.Apple Reachability 网络监测,可以参考下这篇文章iOS网络监测如何区分2.3.4G? 3.DOUAudioStreamer 豆瓣的开源软件,DOUAudioStreamer 是 iOS 和 Mac 的基于核心音频的流媒体音频播放器 4.