JLChen
2020-04-15 19545253f1977af3ef84b301183c2e12107983c9
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
using System;
using AVFoundation;
using com.hdl.on;
using CoreLocation;
using Foundation;
 
using UIKit;
 
 
namespace Shared
{
    public class BaseApplicationDelegate : UIApplicationDelegate
    {
        public static Action<UIApplication, NSDictionary> FinishedLaunchingAction;
        public static Action<UIApplication> OnResignActivationAction;
        public static Action<UIApplication> DidEnterBackgroundAction;
        public static Action<UIApplication> WillEnterForegroundAction;
        public static Action<UIApplication> OnActivatedAction;
        public static Action<UIApplication> WillTerminateAction;
        public static Action<string> DeviceTokenAction;
        public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
        {
            //registerForRemoteNotification(application);
            //var musicInfo = new MusicInfo { };
            //Volume.Init();
 
            FinishedLaunchingAction?.Invoke(application, launchOptions);
 
            return true;
        }
 
        ///// <summary>
        ///// 注册远程消息推送
        ///// </summary>
        ///// <param name="application">Application.</param>
        //void registerForRemoteNotification(UIApplication application)
        //{
        //    if (8 <= int.Parse(UIDevice.CurrentDevice.SystemVersion.Split('.')[0]))
        //    {
        //        // 1.注册UserNotification,以获取推送通知的权限
        //        var settings = UIUserNotificationSettings.GetSettingsForTypes(UIUserNotificationType.Sound | UIUserNotificationType.Alert | UIUserNotificationType.Badge, null);
        //        application.RegisterUserNotificationSettings(settings);
 
        //        // 2.注册远程推送
        //    }
        //    else
        //    {
        //        application.RegisterForRemoteNotificationTypes(UIRemoteNotificationType.NewsstandContentAvailability | UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound);
        //    }
        //}
 
        public override void OnResignActivation(UIApplication application) => OnResignActivationAction?.Invoke(application);// Invoked when the application is about to move from active to inactive state.// This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) // or when the user quits the application and it begins the transition to the background state.// Games should use this method to pause the game.
 
        public override void DidEnterBackground(UIApplication application) => DidEnterBackgroundAction?.Invoke(application);// Use this method to release shared resources, save user data, invalidate timers and store the application state.// If your application supports background exection this method is called instead of WillTerminate when the user quits.
 
        public override void WillEnterForeground(UIApplication application) => WillEnterForegroundAction?.Invoke(application);// Called as part of the transiton from background to active state.// Here you can undo many of the changes made on entering the background.
 
        public override void OnActivated(UIApplication application)
        {
            AVAudioSession.SharedInstance().SetActive(true);
            OnActivatedAction?.Invoke(application);
            // Restart any tasks that were paused (or not yet started) while the application was inactive. 
            // If the application was previously in the background, optionally refresh the user interface.
        }
 
        public override void WillTerminate(UIApplication application) => WillTerminateAction?.Invoke(application);// Called when the application is about to terminate. Save data, if needed. See also DidEnterBackground.
 
        public virtual void setHDLRootViewController() {
 
 
        }
 
    }
}