应用之间调用 UIApplication类的OpenURL方法

一、UIApplication类的OpenURL方法

1、调用app store界面方法

在实际开发中,往往要推荐自己其他应用和推荐自己的收费软件,那么我们就需要在程序中直接连接到app store的相应页面。

实际上的做法很简单,使用的还是UIApplication类的OpenURL方法:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"程序的相应连接"]];

2、调用其它应用的方法

// 调用 自带mail

[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:@"mailto://[email protected]"]];

// 调用 电话phone

[[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"tel://8008808888"]];

// 调用 SMS

[[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"sms://800888"]];

// 调用自带 浏览器 safari

[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:@"http://www.hzlzh.com"]];

// 调用 Remote

[[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"remote://fff"]];

调用phone可以传递号码,调用SMS只能设定号码,不能初始化SMS内容。

二、应用程序间通信

1、调在plist文件中,注册对外接口

找到appname-info.plist文件,点击打开它,在列表中找到URL types(如果没有,可添加一个URL types )里面的内容设置看下图:

关键Key和Value是 URL identifier => com.zilanxing.andpush;URL Schemes => andpush

到此对外接口已注册好

2、调用上面的接口通信

注册url地址:andpush://cn.andpush.com/access/register?code=zOdSpC8ZXv

// 通过iOS浏览器打开应用程序注册应用

// andpush用户注册,当用户邮箱收到邀请链接,直接点击下面链接就可以打开andpush应用程序的注册页面

<a href="andpush://cn.andpush.com/access/register?code=zOdSpC8ZXv">andpush://cn.andpush.com/access/register?code=zOdSpC8ZXv</a>

// 通过其它App应用打开andpush应用程序的注册页面

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"andpush://cn.andpush.com/access/register?code=zOdSpC8ZXv"]];

3、 andpush 响就注册页面的请求

在AndPush应用的AppDelegate.m文件中添加如下代码:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

{

if (!url) {

return NO;

}

NSLog(@"handleOpenURL: %@", [url absoluteString]);

// 在host等于cn.andpush.com时,说明是注册请求

if ([[url host] isEqualToString:@"cn.andpush.com"]) {

// 请求的url地址: andpush://cn.andpush.com/access/register?code=zOdSpC8ZXv

// 获取注册邀请码 code

NSString *code = [[url query] substringFromIndex:[[url query] rangeOfString:@"code="].location+5];

NSLog(@"code: %@", code);

// 使用本地 ViewController 来注册

UserRegisterViewController *viewController = [[[UserRegisterViewControlleralloc] init] autorelease];

viewController.title = @"注册";

viewController.code = code;

//从底部显示视图

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];

navigationController.title = @"注册";

[self.tabBarController presentModalViewController:navigationController animated:TRUE];

[navigationController release];

// [self.navigationController pushViewController:controller animated:YES];

// [controller release];

return YES;

} else {

return NO;

}

}

到此搞定,以后再完善。

其它参考:

http://www.cocoachina.com/newbie/tutorial/2012/0529/4302.html

http://www.byywee.com/page/M0/S753/753470.html

http://www.cocoachina.com/bbs/simple/?t58388.html

转自http://blog.163.com/wzi_xiang/blog/static/659829612012910103458775/

时间: 2024-11-05 20:36:47

应用之间调用 UIApplication类的OpenURL方法的相关文章

iOS:UIApplication类的OpenURL方法

1.调用app store界面方法 在实际开发中,往往要推荐自己其他应用和推荐自己的收费软件,那么我们就需要在程序中直接连接到app store的相应页面. 实际上的做法很简单,使用的还是UIApplication类的OpenURL方法: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"程序的相应连接"]]; 2.调用其它应用的方法 // 调用 自带mail [[UIApplicationsharedA

在C#中我们能调用一个类的私有方法吗

博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:在C#中我们能调用一个类的私有方法吗.

jsp中怎么调用java类中的方法

在jsp页面中先要,引入java类 例如: <%@page import="javabean.DbConn"%><!-- 引入包中的"类" --> <!--在用到的地方,直接对类实例化--> <% DbConn  DB=new  DbConn(); %> <!--然后就可以直接调用类中的方法--> <% Connection con=DB.conn(); %> jsp中怎么调用java类中的方法

Java反射机制demo(五)—获得并调用一个类中的方法

这个demo在使用反射机制操作属性之前,主要原因是因为在.class文件字节码中,方法排在属性的前面. 1,获得一个类中的方法 先看一下方法和运行结果.获取所有的方法使用Class类中getMethos()方法. 待获取的类: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 package

python 装饰器调用其他类中的方法

场景: 做自动化是,每次都需要调用登录方法,代码重复比较多,在这种场景下,将登录功能抽取为装饰器demo class Test: data= get_yaml_date_by_fillter(filename ='warehouse_case.yaml',filter='whpage') @ddt.data(*data) @login def test_OpenWareHouse_Info(self,data): try: for key in data: result = WarehouseI

在Jsp中使用EL表达式调用String类的matches方法的问题

要做什么:匹配一个字符串,如果是小数点数字,就取整数:如果不是数字,就直接显示 先看正确实现: <c:set var="reg" value="\d+\.?\d+" /> <c:if test="${expPerResult.matches(reg)}"> 数字 <fmt:parseNumber integerOnly="true" value="${expPerResult}"

如何(通过反射调用一个类的私有方法)

1 public class Calcu { 2 3 private int add(int a,int b) { 4 return a+b; 5 } 6 } public class CalcuTest{ public static void main(String[] args) { Calcu ca=new Calcu(); Class<Calcu> clazz=Calcu.class; Object res=null; try { //返回一个方法对象, Method m=clazz.

java利用反射来调用一个类的私有方法

public class Calculator2{ private int add(int a,int b){ return a+b; } } public class Test { public static void main(String[] args){ Calculator2 calculator2 = new Calculator2(); Class<Calculator2> clazz = Calculator2.class; Object result = null; try{

IOS开发之──应用之间调用(2)

在上一篇文章中,讲解了如何在自己应用之间调用问题,今天介绍一下如果调用IOS自带的app的方法 一.调用app store界面方法 在实际开发中,往往要推荐自己其他应用和推荐自己的收费软件,那么我们就需要在程序中直接连接到app store的相应页面. 实际上的做法很简单,使用的还是UIApplication类的OpenURL方法: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"程序的相应连接"]];