黄学彪
2019-11-18 16604a593202f2f87adf71abd57d036fe7da3b52
ZigbeeApp/GateWay.Ios/AppDelegate.cs
@@ -8,6 +8,8 @@
using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;
using Shared.IOS.TBL;
namespace GateWay.Ios
{
    // The UIApplicationDelegate for the application. This class is responsible for launching the
@@ -33,6 +35,8 @@
            rootViewController = new UINavigationController(new MainViewController()) { NavigationBarHidden = true };
            Window.RootViewController = rootViewController;
            Window.MakeKeyAndVisible();
            Shared.IOS.TBL.WXApi.RegisterApp("wx2ec8f53f6fa36e82", "https://hdlcontrol.com/ZigbeeApp/");
            DeviceTokenAction += (deviceToken) =>
            {
@@ -210,6 +214,54 @@
            // Called when the application is about to terminate. Save data, if needed. See also DidEnterBackground.
            base.WillTerminate(application);
        }
        public static Action<string> RespAction;
        public static void WXLogin()
        {
            var req = new SendAuthReq { Scope = "snsapi_userinfo", State = "ZigbeeApp", OpenID = "0c806938e2413ce73eef92cc3" };
            WXApi.SendAuthReq(req, rootViewController, null, null);
        }
        MyWXApiDelegate myWXApiDelegate = new MyWXApiDelegate { };
        class MyWXApiDelegate : WXApiDelegate
        {
            public override void OnReq(BaseReq req)
            {
            }
            public override void OnResp(BaseResp resp)
            {
                if (resp is SendAuthResp)
                {
                    var sendAuthResp = resp as SendAuthResp;
                    switch (sendAuthResp.ErrCode)
                    {
                        case 0:
                            try
                            {
                                var result = new System.Net.WebClient { }.DownloadString($"https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx2ec8f53f6fa36e82&secret=a08585cd6ff2ce64570b9e7e6525dd8e&code={((SendAuthResp)resp).Code}&grant_type=authorization_code");
                                RespAction?.Invoke(result);
                            }
                            catch {
                                RespAction?.Invoke(null);
                            }
                            break;
                        default:
                            RespAction?.Invoke(null);
                            break;
                    }
                }
            }
        }
        public override bool ContinueUserActivity(UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler)
        {
            return WXApi.HandleOpenUniversalLink(userActivity, myWXApiDelegate);
        }
    }
}