【问题标题】:How to use framework func in didFinishLaunchingWithOptions AppDelegate?如何在 didFinishLaunchingWithOptions AppDelegate 中使用框架函数?
【发布时间】:2018-12-12 00:39:25
【问题描述】:

感谢提示@davidyoung 需要更多帮助

我有一个类似的问题,显示在下面的链接中,我试过它正在工作,但是在应用程序委托中,你正在初始化新的位置管理器实例。有什么方法可以在我的框架项目中做同样的事情(我有位置sdk 框架中的管理器初始化),以便开发人员可以访问该函数以重新开始..

MY IOS App is not getting any region updates when ever I restart my device any ideas?

【问题讨论】:

    标签: ios swift cllocationmanager ibeacon core-bluetooth


    【解决方案1】:

    如果您构建一个 iOS 框架来检测信标,则适用相同的规则,就像您在 iOS 应用程序中编写代码一样。在以下情况下,您将在信标区域进入/退出时获得自动启动行为:

    1. 蓝牙已开启且位置信息已启用
    2. 使用CoreLocation成功获取后台权限locationManager.requestAlwaysAuthorization()
    3. 致电locationManager.startMonitoring(for: beaconRegion)CLBeaconRegion
    4. 设置您的 CLLocationManagerDelegate 以在 AppDelegate 的 didFinishLaunching 触发的执行线程中的某处接收回调。

    要使其与自动启动一起使用,项目 3 和 4 作为 didFinishLaunching 调用的结果执行至关重要。但它们实际上不必出现在该方法本身内,它们可以在框架内执行。

    您必须做的是指示您框架的用户在 didFinishLaunching 中放置一个调用您的框架的方法调用,以便它可以处理上面的底部两项。

    【讨论】:

    • 谢谢大卫 .. 将在 didFinishLaunching 中添加开始监控 cal ..另外我正在考虑在 applicationDidEnterBackground 中使用开始监控 cal 并在涉及 applicationDidBecomeActive 时停止监控 .. 这样应用程序将在不监控区域时监控区域在前台.. 或者有什么问题..?
    • 如果用户启动应用程序,然后使用任务切换器将其终止或崩溃,这可能不起作用。在这些情况下,可能不会调用 applicationDidEnterBackground。
    • 对不起,我在说什么......将创建名为 LocationManager 的单例类,然后我将在 didFinishLaunching 和 applicationDidEnterBackground 中调用区域监控......
    • 好的,但是你说“当涉及到applicationDidBecomeActive时停止监控”。如果您这样做,并且应用从不调用 applicationDidEnterBackground(因为它崩溃,或者用户从任务切换器中杀死它),它将不会在检测时自动启动。
    • 我明白了,谢谢...还有一个问题我必须在开始监控 cal 之前检查身份验证..所以我可以在 didFinishLaunching 中验证服务 cal,然后等待该 cal 返回并开始监控在那个卡尔回来。应用程序进入主屏幕后可能会出现回调结果..或者我是否必须在 didFinishLaunching 返回之前进行校准。?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 2017-05-18
    • 2018-04-27
    相关资源
    最近更新 更多