didFinishLaunchingWithOptions参数launchOptions内容

本文档介绍了iOS应用在启动时如何处理launchOptions参数,特别是当应用程序从支付宝支付完成后返回时的处理方式。通过检查launchOptions中的sourceApplication键来判断是否来自支付宝,并在openURL方法中处理支付宝的支付结果,确保通知中心能接收到支付完成的通知。
摘要由CSDN通过智能技术生成
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

说明:当应用程序启动时执行,应用程序启动入口。只在应用程序启动时执行一次。application参数用来获取应用程序的状态、变量等,值得注意的是字典参数:(NSDictionary *)launchOptions,该参数存储程序启动的原因。

1.若用户直接启动,lauchOptions内无数据;
2.若由其他应用程序通过openURL:启动,则UIApplicationLaunchOptionsURLKey对应的对象为启动URL(NSURL),UIApplicationLaunchOptionsSourceApplicationKey对应启动的源应用程序的bundle ID (NSString);

3.若由本地通知启动,则UIApplicationLaunchOptionsLocalNotificationKey对应的是为启动应用程序的的本地通知对象(UILocalNotification);

4.若由远程通知启动,则UIApplicationLaunchOptionsRemoteNotificationKey对应的是启动应用程序的的远程通知信息userInfo(NSDictionary);

其他key还有UIApplicationLaunchOptionsAnnotationKey,UIApplicationLaunchOptionsLocationKey,
UIApplicationLaunchOptionsNewsstandDownloadsKey。 如果要在启动时,做出一些区分,那就需要在下面的代码做处理。 比如:应用可以被某个其它应用调起(作为该应用的子应用),要实现单点登录,那就需要在启动代码的地方做出合理的验证,并跳过登录。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSURL *url = [options objectForKey:UIApplicationLaunchOptionsURLKey];
if(url)
{
}
NSString *bundleId = [options objectForKey:UIApplicationLaunchOptionsSourceApplicationKey];
if(bundleId)
{
}
UILocalNotification * localNotify = [options objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if(localNotify)
{
}
NSDictionary * userInfo = [options objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if(userInfo)
{
}
}

 应用 /**

     * 跳转支付宝app支付时,app被kill,支付完成后,从支付宝app跳转app,return NO 不调用application: openURL:sourceApplication:annotation:(返回app首页)

     */

    if (launchOptions) {

        NSString *

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Android Studio 中部署 Flutter 项目到 iOS 设备上,需要遵循以下步骤: 1. 在 Flutter 项目中打开终端,并运行 `flutter build ios` 命令,以构建 iOS 应用程序。 2. 在 iOS 设备上安装 Xcode,打开 Xcode 并选择 `File -> New -> Project` 菜单项。 3. 在弹出的菜单中,选择 `Application -> Single View Application`,并输入应用程序的名称和组织标识符。 4. 在 `Product` 菜单中选择 `Destination`,并选择要部署到的 iOS 设备。 5. 在 `File` 菜单中选择 `Add Files to "Project Name"`,并选择 Flutter 项目中的 `ios` 文件夹。 6. 在弹出的菜单中,选择 `Copy items if needed`,并点击 `Finish`。 7. 在 `AppDelegate.swift` 文件中,添加以下代码: ``` import UIKit import Flutter @UIApplicationMain @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } } ``` 8. 在 `Info.plist` 文件中,添加以下权限: ``` <key>NSCameraUsageDescription</key> <string>Camera Permission</string> <key>NSMicrophoneUsageDescription</key> <string>Microphone Permission</string> <key>NSPhotoLibraryUsageDescription</key> <string>Photo Library Permission</string> ``` 9. 在 Xcode 中,选择 `Product -> Build` 菜单项,以构建 iOS 应用程序。 以上就是在 Android Studio 中部署 Flutter 项目到 iOS 设备上的步骤。注意,在构建 iOS 应用程序之前,需要在 Mac 上安装并配置 Xcode 和 iOS 开发人员工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值