iOS开发中使用[[UIApplication sharedApplication] openURL:]加载其它应用

在iOS开发中,经常需要调用其它App,如拨打电话、发送邮件等。UIApplication:openURL:方法是实现这一目的的最简单方法,该方法一般通过提供的url参数的模式来调用不同的App。

通过openURL方法可以调用如下应用:

  • 调用谷歌地图(Google Maps)
  • 调用邮件客户端(Apple Mail)
  • 拨号(Phone Number)
  • 调用短信(SMS)
  • 调用浏览器(Safari Browser)
  • 调用应用商店(AppStore)

 

调用谷歌地图(Google Maps)

URL模式:http : //maps.google.com/maps?q=<strong>${QUERY_STRING}</strong>

代码示例:

NSString * searchQuery = @ "1 Infinite Loop, Cupertino, CA 95014";
searchQuery  =  [addressText stringByAddingPercentEscapesUsingEncoding : NSUTF8StringEncoding ];
NSString * urlString = [ NSString stringWithFormat : @ "http://maps.google.com/maps?q=%@", searchQuery ];
[ [UIApplication sharedApplication ] openURL : [ NSURL URLWithString :urlText ] ];

 

调用邮件客户端(Apple Mail)

URL模式:mailto : //<strong>${EMAIL_ADDRESS}</strong>

代码示例:

[ [UIApplication sharedApplication ] openURL : [ NSURL URLWithString : @ "mailto://admin@eyecm.com" ] ];

 

拨号(Phone Number)

URL模式:tel : //<strong>${PHONE_NUMBER}</strong>

代码示例:

[ [UIApplication sharedApplication ] openURL : [ NSURL URLWithString : @ "tel://10086" ] ];

 

调用短信(SMS)

URL模式:sms :<strong>$ {PHONENUMBER_OR_SHORTCODE }< /strong>

代码示例:

[ [UIApplication sharedApplication ] openURL : [ NSURL URLWithString : @ "sms:10086" ] ];

 

调用浏览器(Safari Browser)

代码示例:

NSURL *url =  [ NSURL URLWithString : @ "http://eyecm.com" ];
[ [UIApplication sharedApplication ] openURL :url ];

 

调用应用商店(AppStore)

URL模式:http : //phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291586600&amp;mt=8

代码示例:

NSURL *appStoreUrl =  [ NSURL URLWithString : @ "http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291586600&amp;amp;mt=8" ];
[ [UIApplication sharedApplication ] openURL :appStoreUrl ];

调用appstore中程序的评论

 

   很多用户用了好软件后忘记或嫌麻烦而不去 App Store 进行打分评星,为此开发者可以在应用中加入打分按钮,点击后直接跳转到 App Store 的评分界面。

    App Store 上评论的链接地址是 itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=appID

    所以可以用这段代码

        NSString *str = [NSString stringWithFormat:
                         @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d",
                         m_appleID ];  
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];

  只需要将id替换成你自己的appid即可
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在iOS使用Objective-C实现动态壁纸功能,您可以按照以下步骤进行: 1.创建一个新的Xcode项目,并选择Single View Application模板。 2.在Assets.xcassets创建包含动态壁纸图像的图像集。 3.在AppDelegate.m文件添加以下代码,以在应用程序启动时注册动态壁纸: ``` - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Register for dynamic wallpapers NSDictionary *wallpaperOptions = @{UIApplicationRegisteredDefaultDynamicWallpaperOptions : @{}}; [[UIApplication sharedApplication] registerForRemoteNotificationsMatchingTypes:UIRemoteNotificationTypeNone categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes: UIUserNotificationTypeNone categories:nil]]; [[UIApplication sharedApplication] registerForRemoteNotifications]; [[UIApplication sharedApplication] registerForRemoteNotificationsWithOptions:wallpaperOptions error:nil]; return YES; } ``` 4.在Info.plist文件添加以下键/值对,以允许应用程序在后台运行: ``` <key>UIBackgroundModes</key> <array> <string>remote-notification</string> </array> ``` 5.在AppDelegate.m文件添加以下代码,以处理接收到的动态壁纸: ``` - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { NSString *dynamicWallpaperURLString = userInfo[UIApplicationDynamicWallpaperContentIdentifierKey]; NSURL *dynamicWallpaperURL = [NSURL URLWithString:dynamicWallpaperURLString]; // Download and set the dynamic wallpaper } ``` 6.下载动态壁纸图像并将其设置为应用程序的背景。您可以使用以下代码之一: a.使用UIImageView: ``` UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.view.bounds]; imageView.contentMode = UIViewContentModeScaleAspectFill; imageView.clipsToBounds = YES; [imageView loadImageWithURL:dynamicWallpaperURL]; [self.view addSubview:imageView]; ``` b.使用CALayer: ``` CALayer *layer = [[CALayer alloc] init]; layer.contentsGravity = kCAGravityResizeAspectFill; layer.masksToBounds = YES; layer.contents = [NSData dataWithContentsOfURL:dynamicWallpaperURL]; [self.view.layer insertSublayer:layer atIndex:0]; ``` 7.运行应用程序并测试您的动态壁纸功能。 请注意,为了使动态壁纸功能正常工作,您需要在应用程序启动时注册动态壁纸,并在接收到远程通知时处理动态壁纸。您还需要确保应用程序在后台运行以接收通知。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值