using System; using AVFoundation; using com.hdl.on; using CoreLocation; using Foundation; using UIKit; namespace Shared { public class BaseApplicationDelegate : UIApplicationDelegate { public static Action FinishedLaunchingAction; public static Action OnResignActivationAction; public static Action DidEnterBackgroundAction; public static Action WillEnterForegroundAction; public static Action OnActivatedAction; public static Action WillTerminateAction; public static Action DeviceTokenAction; public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { //registerForRemoteNotification(application); //var musicInfo = new MusicInfo { }; //Volume.Init(); FinishedLaunchingAction?.Invoke(application, launchOptions); return true; } ///// ///// 注册远程消息推送 ///// ///// Application. //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() { } } }