using System;
|
using UIKit;
|
|
namespace Shared
|
{
|
//AVFoundation CoreGraphics UIKit CoreMedia AudioToolbox VideoToolbox GLKit OpenAL MobileCoreServices SystemConfiguration CoreTelephony AVFoundation WebKit
|
/// <summary>
|
/// UI处理类
|
/// </summary>
|
public static class Application
|
{
|
//public static double PhoneType
|
//{
|
// get
|
// {
|
// var type = UIDevice.CurrentDevice.SystemVersion.Split(new string[] { "." }, StringSplitOptions.None)[0];
|
// var d = 1.0d;
|
// double.TryParse(type, out d);
|
// return d;
|
// }
|
//}
|
|
public enum GpsUseMode
|
{
|
Always,
|
WhenInUse
|
}
|
public static bool IsGpsEnable = true;
|
public static GpsUseMode CurrentGpsUseMode = GpsUseMode.WhenInUse;
|
|
|
public static bool IsMusicEnable = true;
|
|
//2019-08-14 修改
|
public static double PhoneType
|
{
|
get
|
{
|
var device = Xamarin.Essentials.DeviceInfo.Model;
|
if (device == null)
|
{
|
return 1.0;
|
}
|
var type = device.Replace("iPhone", "").Split(',')[0];
|
|
double d = 1.0;
|
double.TryParse(type, out d);
|
return d;
|
}
|
}
|
|
//public static String PhoneTypeModel
|
//{
|
// get
|
// {
|
// var device = UIDevice.CurrentDevice.Model;// .SystemVersion.Split(new string[] { "." }, StringSplitOptions.None)[0];
|
|
// return device;
|
// }
|
//}
|
|
|
/// <summary>
|
/// 获取实际的高度
|
/// </summary>
|
/// <returns>The real height.</returns>
|
/// <param name="height">Height.</param>
|
public static int GetRealHeight(int height)
|
{
|
return (int)(height / HeightScale);
|
}
|
|
/// <summary>
|
/// 默认的字体大小
|
/// </summary>
|
public static int FontSize = 18;
|
public static bool IsUsePingFang = false;
|
|
/// <summary>
|
/// 获取实际的宽度
|
/// </summary>
|
/// <returns>The real width.</returns>
|
/// <param name="width">Width.</param>
|
public static int GetRealWidth(int width)
|
{
|
return (int)(width / WidthScale);
|
}
|
/// <summary>
|
/// 隐藏软键盘
|
/// </summary>
|
public static void HideSoftInput()
|
{
|
if (Shared.EditText.Instance != null)
|
{
|
Shared.EditText.Instance.Foucs = false;
|
}
|
}
|
|
/// <summary>
|
/// 当前设备类型
|
/// </summary>
|
public static readonly Device DeviceType = Device.Ios;
|
|
/// <summary>
|
/// 获取最小比例的实际值
|
/// </summary>
|
/// <returns>The minimum real.</returns>
|
/// <param name="widthOrHeight">Width or height.</param>
|
public static int GetMinReal(int widthOrHeight)
|
{
|
return (int)(widthOrHeight / MinScale);
|
}
|
|
/// <summary>
|
/// 获取平均实际值
|
/// </summary>
|
/// <returns>The minimum real average.</returns>
|
/// <param name="widthOrHeight">Width or height.</param>
|
public static int GetMinRealAverage(int widthOrHeight)
|
{
|
return (int)(widthOrHeight / AverageScale);
|
}
|
|
/// <summary>
|
/// 主线程执行指定事件
|
/// </summary>
|
/// <param name="action">Action.</param>
|
public static void RunOnMainThread(Action action)
|
{
|
if (System.Threading.Thread.CurrentThread.ManagedThreadId == mainThreadId)
|
{
|
action();
|
}
|
else
|
{
|
RootFrameLayout.InvokeOnMainThread(action);
|
}
|
}
|
|
public static bool IsWifi {
|
get {
|
return MyReachability.InternetConnectionStatus() == MyNetworkStatus.ReachableViaWiFiNetwork;
|
}
|
}
|
|
/// <summary>
|
/// 当前设备的宽度
|
/// </summary>
|
public static int CurrentWidth;
|
/// <summary>
|
/// 当前设备的高度
|
/// </summary>
|
public static int CurrentHeight;
|
|
|
/// <summary>
|
/// 宽度比例
|
/// </summary>
|
/// <value>The width scale.</value>
|
public static float WidthScale
|
{
|
get
|
{
|
return DesignWidth * 1.0f / CurrentWidth;
|
}
|
}
|
|
/// <summary>
|
/// 高度比例
|
/// </summary>
|
/// <value>The height scale.</value>
|
public static float HeightScale
|
{
|
get
|
{
|
//return Application.CurrentHeight / bigsize;
|
return DesignHeight * 1.0f / CurrentHeight;
|
}
|
}
|
|
/// <summary>
|
/// 最小比例
|
/// </summary>
|
/// <value>The minimum scale.</value>
|
public static float MinScale
|
{
|
get
|
{
|
return WidthScale < HeightScale ? WidthScale : HeightScale;
|
}
|
}
|
|
/// <summary>
|
/// 平均比例
|
/// </summary>
|
/// <value>The average scale.</value>
|
public static float AverageScale
|
{
|
get
|
{
|
return (WidthScale + HeightScale)/2;
|
}
|
}
|
|
|
/// <summary>
|
/// 设计宽度
|
/// </summary>
|
public static int DesignWidth=1920;
|
/// <summary>
|
/// 设计高度
|
/// </summary>
|
public static int DesignHeight=1136;
|
|
|
// CoreGraphics.CGRect screenRect = [[UIScreen mainScreen] bounds];
|
//CoreGraphics.CGSize screenSize = screenRect.size;
|
|
|
/// <summary>
|
/// 当前主页
|
/// </summary>
|
/// <value>The main page.</value>
|
public static Shared.FrameLayout MainPage
|
{
|
get;
|
private set;
|
}
|
|
static int mainThreadId;
|
static UIView rootFrameLayout;
|
/// <summary>
|
/// 根容器视图
|
/// </summary>
|
/// <value>The root frame layout.</value>
|
public static UIView RootFrameLayout
|
{
|
get
|
{
|
return rootFrameLayout;
|
}
|
set
|
{
|
mainThreadId = System.Threading.Thread.CurrentThread.ManagedThreadId;
|
rootFrameLayout = value;
|
CurrentWidth = (int)value.Frame.Width;
|
Shared.HDLUtils.WriteLine ("3========" + CurrentWidth);
|
CurrentHeight = (int)value.Frame.Height;
|
|
MainPage = new FrameLayout(value) { Width = (int)value.Frame.Width, Height = (int)value.Frame.Height, Parent = new RootView() { Width = (int)value.Frame.Width, Height = (int)value.Frame.Height } };
|
MainPage.Refresh();
|
}
|
}
|
|
/// <summary>
|
/// 数据文件根目录
|
/// </summary>
|
/// <value>The root path.</value>
|
public static string RootPath=System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal)+"/";
|
|
/// <summary>
|
/// 图片的根目录
|
/// </summary>
|
/// <value>The root path image.</value>
|
public static string RootPathImage
|
{
|
get
|
{
|
return RootPath + "Phone/";
|
}
|
}
|
|
/// <summary>
|
/// 是否是pad
|
/// </summary>
|
public static bool IsPad {
|
get {
|
return false;
|
//return UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad;
|
}
|
}
|
|
|
/// <summary>
|
/// 皮肤,null时表示用默认的
|
/// </summary>
|
public static string Skin;
|
/// <summary>
|
/// GPS位置变化事件
|
/// </summary>
|
public static Action<double, double> LocationAction;
|
|
|
//获取当前屏幕显示的viewcontroller
|
public static UIViewController currentVC
|
{
|
get
|
{
|
var rootViewController = UIApplication.SharedApplication.KeyWindow.RootViewController;
|
var currentVC = getCurrentVCFrom(rootViewController);
|
return currentVC;
|
}
|
}
|
|
static UIViewController getCurrentVCFrom(UIViewController rootVC)
|
{
|
UIViewController currentVC;
|
if (rootVC.PresentedViewController != null)
|
{
|
// 视图是被presented出来的
|
rootVC = rootVC.PresentedViewController;
|
}
|
if (rootVC.GetType() == typeof(UITabBarController))
|
{
|
// 根视图为UITabBarController
|
currentVC = getCurrentVCFrom((rootVC as UITabBarController).SelectedViewController);
|
}
|
else if (rootVC.GetType() == typeof(UINavigationController))
|
{
|
// 根视图为UINavigationController
|
currentVC = getCurrentVCFrom((rootVC as UINavigationController).VisibleViewController);
|
}
|
else
|
{
|
// 根视图为非导航类
|
currentVC = rootVC;
|
}
|
return currentVC;
|
}
|
}
|
}
|