├── .gitignore
├── README.md
├── WeChat.iOS.Samples
├── AppDelegate.cs
├── Assets.xcassets
│ ├── AppIcon.appiconset
│ │ └── Contents.json
│ └── Contents.json
├── Entitlements.plist
├── Info.plist
├── LaunchScreen.storyboard
├── Main.cs
├── Main.storyboard
├── ViewController.cs
├── ViewController.designer.cs
├── WeChat.iOS.Samples.csproj
└── WeChatAPI.cs
├── WeChat.iOS
├── ApiDefinition.cs
├── Properties
│ └── AssemblyInfo.cs
├── Structs.cs
└── WeChat.iOS.csproj
└── WeChatSDK.sln
/.gitignore:
--------------------------------------------------------------------------------
1 | # Autosave files
2 | *~
3 |
4 | # build
5 | [Oo]bj/
6 | [Bb]in/
7 | packages/
8 | TestResults/
9 |
10 | # globs
11 | Makefile.in
12 | *.DS_Store
13 | *.sln.cache
14 | *.suo
15 | *.cache
16 | *.pidb
17 | *.userprefs
18 | *.usertasks
19 | config.log
20 | config.make
21 | config.status
22 | aclocal.m4
23 | install-sh
24 | autom4te.cache/
25 | *.user
26 | *.tar.gz
27 | tarballs/
28 | test-results/
29 | Thumbs.db
30 |
31 | # Mac bundle stuff
32 | *.dmg
33 | *.app
34 |
35 | # resharper
36 | *_Resharper.*
37 | *.Resharper
38 |
39 | # dotCover
40 | *.dotCover
41 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | This is Sample for Xamarin iOS binding in WeChat iOS SDK .
2 |
3 | You can read my blog http://blog.csdn.net/kinfey/article/details/55517845
4 |
5 |
--------------------------------------------------------------------------------
/WeChat.iOS.Samples/AppDelegate.cs:
--------------------------------------------------------------------------------
1 | using Foundation;
2 | using UIKit;
3 |
4 | namespace WeChat.iOS.Samples
5 | {
6 | // The UIApplicationDelegate for the application. This class is responsible for launching the
7 | // User Interface of the application, as well as listening (and optionally responding) to application events from iOS.
8 | [Register("AppDelegate")]
9 | public class AppDelegate : UIApplicationDelegate
10 | {
11 | // class-level declarations
12 |
13 |
14 | WeChatAPI wechat = new WeChatAPI();
15 |
16 | public override UIWindow Window
17 | {
18 | get;
19 | set;
20 | }
21 |
22 | public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
23 | {
24 | // Override point for customization after application launch.
25 | // If not required for your application you can safely delete this method
26 | //WXApi.RegisterApp("wx3f94d21d67c4ae76");
27 | wechat.Log("your open id");
28 | return true;
29 | }
30 |
31 | public override bool HandleOpenURL(UIApplication application, NSUrl url)
32 | {
33 | var result = wechat.Open(url);
34 | return result;
35 | }
36 |
37 | public override bool OpenUrl(UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
38 | {
39 |
40 | //var result = WXApi.HandleOpenURL(url, this);
41 | var result = wechat.Open(url);
42 | return result;
43 |
44 | }
45 |
46 | public override void OnResignActivation(UIApplication application)
47 | {
48 | // Invoked when the application is about to move from active to inactive state.
49 | // This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message)
50 | // or when the user quits the application and it begins the transition to the background state.
51 | // Games should use this method to pause the game.
52 | }
53 |
54 | public override void DidEnterBackground(UIApplication application)
55 | {
56 | // Use this method to release shared resources, save user data, invalidate timers and store the application state.
57 | // If your application supports background exection this method is called instead of WillTerminate when the user quits.
58 | }
59 |
60 | public override void WillEnterForeground(UIApplication application)
61 | {
62 | // Called as part of the transiton from background to active state.
63 | // Here you can undo many of the changes made on entering the background.
64 | }
65 |
66 | public override void OnActivated(UIApplication application)
67 | {
68 | // Restart any tasks that were paused (or not yet started) while the application was inactive.
69 | // If the application was previously in the background, optionally refresh the user interface.
70 | }
71 |
72 | public override void WillTerminate(UIApplication application)
73 | {
74 | // Called when the application is about to terminate. Save data, if needed. See also DidEnterBackground.
75 | }
76 | }
77 | }
78 |
79 |
--------------------------------------------------------------------------------
/WeChat.iOS.Samples/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": [
3 | {
4 | "idiom": "iphone",
5 | "size": "29x29",
6 | "scale": "1x"
7 | },
8 | {
9 | "idiom": "iphone",
10 | "size": "29x29",
11 | "scale": "2x"
12 | },
13 | {
14 | "idiom": "iphone",
15 | "size": "29x29",
16 | "scale": "3x"
17 | },
18 | {
19 | "idiom": "iphone",
20 | "size": "40x40",
21 | "scale": "2x"
22 | },
23 | {
24 | "idiom": "iphone",
25 | "size": "40x40",
26 | "scale": "3x"
27 | },
28 | {
29 | "idiom": "iphone",
30 | "size": "57x57",
31 | "scale": "1x"
32 | },
33 | {
34 | "idiom": "iphone",
35 | "size": "57x57",
36 | "scale": "2x"
37 | },
38 | {
39 | "idiom": "iphone",
40 | "size": "60x60",
41 | "scale": "2x"
42 | },
43 | {
44 | "idiom": "iphone",
45 | "size": "60x60",
46 | "scale": "3x"
47 | },
48 | {
49 | "idiom": "ipad",
50 | "size": "29x29",
51 | "scale": "1x"
52 | },
53 | {
54 | "idiom": "ipad",
55 | "size": "29x29",
56 | "scale": "2x"
57 | },
58 | {
59 | "idiom": "ipad",
60 | "size": "40x40",
61 | "scale": "1x"
62 | },
63 | {
64 | "idiom": "ipad",
65 | "size": "40x40",
66 | "scale": "2x"
67 | },
68 | {
69 | "idiom": "ipad",
70 | "size": "50x50",
71 | "scale": "1x"
72 | },
73 | {
74 | "idiom": "ipad",
75 | "size": "50x50",
76 | "scale": "2x"
77 | },
78 | {
79 | "idiom": "ipad",
80 | "size": "72x72",
81 | "scale": "1x"
82 | },
83 | {
84 | "idiom": "ipad",
85 | "size": "72x72",
86 | "scale": "2x"
87 | },
88 | {
89 | "idiom": "ipad",
90 | "size": "76x76",
91 | "scale": "1x"
92 | },
93 | {
94 | "idiom": "ipad",
95 | "size": "76x76",
96 | "scale": "2x"
97 | },
98 | {
99 | "size": "24x24",
100 | "idiom": "watch",
101 | "scale": "2x",
102 | "role": "notificationCenter",
103 | "subtype": "38mm"
104 | },
105 | {
106 | "size": "27.5x27.5",
107 | "idiom": "watch",
108 | "scale": "2x",
109 | "role": "notificationCenter",
110 | "subtype": "42mm"
111 | },
112 | {
113 | "size": "29x29",
114 | "idiom": "watch",
115 | "role": "companionSettings",
116 | "scale": "2x"
117 | },
118 | {
119 | "size": "29x29",
120 | "idiom": "watch",
121 | "role": "companionSettings",
122 | "scale": "3x"
123 | },
124 | {
125 | "size": "40x40",
126 | "idiom": "watch",
127 | "scale": "2x",
128 | "role": "appLauncher",
129 | "subtype": "38mm"
130 | },
131 | {
132 | "size": "44x44",
133 | "idiom": "watch",
134 | "scale": "2x",
135 | "role": "longLook",
136 | "subtype": "42mm"
137 | },
138 | {
139 | "size": "86x86",
140 | "idiom": "watch",
141 | "scale": "2x",
142 | "role": "quickLook",
143 | "subtype": "38mm"
144 | },
145 | {
146 | "size": "98x98",
147 | "idiom": "watch",
148 | "scale": "2x",
149 | "role": "quickLook",
150 | "subtype": "42mm"
151 | }
152 | ],
153 | "info": {
154 | "version": 1,
155 | "author": "xcode"
156 | }
157 | }
--------------------------------------------------------------------------------
/WeChat.iOS.Samples/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/WeChat.iOS.Samples/Entitlements.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/WeChat.iOS.Samples/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleShortVersionString
6 | 1.0
7 | CFBundleVersion
8 | 1.0
9 | LSRequiresIPhoneOS
10 |
11 | MinimumOSVersion
12 | 10.2
13 | UIDeviceFamily
14 |
15 | 1
16 | 2
17 |
18 | UILaunchStoryboardName
19 | LaunchScreen
20 | UIMainStoryboardFile
21 | Main
22 | UIRequiredDeviceCapabilities
23 |
24 | armv7
25 |
26 | UISupportedInterfaceOrientations
27 |
28 | UIInterfaceOrientationPortrait
29 | UIInterfaceOrientationPortraitUpsideDown
30 | UIInterfaceOrientationLandscapeLeft
31 | UIInterfaceOrientationLandscapeRight
32 |
33 | XSAppIconAssets
34 | Assets.xcassets/AppIcon.appiconset
35 | CFBundleURLTypes
36 |
37 |
38 | CFBundleURLName
39 | weixin
40 | CFBundleURLTypes
41 | Editor
42 | CFBundleURLSchemes
43 |
44 | your
45 | open
46 | id
47 |
48 |
49 |
50 | CFBundleName
51 | Samples
52 | CFBundleIdentifier
53 | your bundle
54 |
55 |
56 |
--------------------------------------------------------------------------------
/WeChat.iOS.Samples/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/WeChat.iOS.Samples/Main.cs:
--------------------------------------------------------------------------------
1 | using UIKit;
2 |
3 | namespace WeChat.iOS.Samples
4 | {
5 | public class Application
6 | {
7 | // This is the main entry point of the application.
8 | static void Main(string[] args)
9 | {
10 | // if you want to use a different Application Delegate class from "AppDelegate"
11 | // you can specify it here.
12 | UIApplication.Main(args, null, "AppDelegate");
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/WeChat.iOS.Samples/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/WeChat.iOS.Samples/ViewController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | using UIKit;
4 |
5 | namespace WeChat.iOS.Samples
6 | {
7 | public partial class ViewController : UIViewController
8 | {
9 |
10 | WeChatAPI we;
11 |
12 | protected ViewController(IntPtr handle) : base(handle)
13 | {
14 | // Note: this .ctor should not contain any initialization logic.
15 | }
16 |
17 | public override void ViewDidLoad()
18 | {
19 | base.ViewDidLoad();
20 | // Perform any additional setup after loading the view, typically from a nib.
21 | we = new WeChatAPI();
22 | }
23 |
24 | public override void DidReceiveMemoryWarning()
25 | {
26 | base.DidReceiveMemoryWarning();
27 | // Release any cached data, images, etc that aren't in use.
28 | }
29 |
30 | partial void UIButton3_TouchUpInside(UIButton sender)
31 | {
32 | we.SendText("Hello Xamarin@WeChat");
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/WeChat.iOS.Samples/ViewController.designer.cs:
--------------------------------------------------------------------------------
1 | // WARNING
2 | //
3 | // This file has been generated automatically by Xamarin Studio from the outlets and
4 | // actions declared in your storyboard file.
5 | // Manual changes to this file will not be maintained.
6 | //
7 | using Foundation;
8 | using System;
9 | using System.CodeDom.Compiler;
10 |
11 | namespace WeChat.iOS.Samples
12 | {
13 | [Register ("ViewController")]
14 | partial class ViewController
15 | {
16 | [Action ("UIButton3_TouchUpInside:")]
17 | [GeneratedCode ("iOS Designer", "1.0")]
18 | partial void UIButton3_TouchUpInside (UIKit.UIButton sender);
19 |
20 | void ReleaseDesignerOutlets ()
21 | {
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/WeChat.iOS.Samples/WeChat.iOS.Samples.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | iPhoneSimulator
6 | {B02E9FBB-C460-496E-96C3-EEE5D659ABE8}
7 | {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
8 | Exe
9 | WeChat.iOS.Samples
10 | WeChat.iOS.Samples
11 | Resources
12 |
13 |
14 | true
15 | full
16 | false
17 | bin\iPhoneSimulator\Debug
18 | DEBUG;ENABLE_TEST_CLOUD;
19 | prompt
20 | 4
21 | iPhone Developer
22 | true
23 | true
24 | true
25 | true
26 | true
27 | true
28 | 25005
29 | None
30 | i386, x86_64
31 | HttpClientHandler
32 |
33 |
34 | pdbonly
35 | true
36 | bin\iPhone\Release
37 |
38 | prompt
39 | 4
40 | iPhone Developer
41 | true
42 | true
43 | true
44 | Entitlements.plist
45 | SdkOnly
46 | ARMv7, ARM64
47 | HttpClientHandler
48 |
49 |
50 | pdbonly
51 | true
52 | bin\iPhoneSimulator\Release
53 |
54 | prompt
55 | 4
56 | iPhone Developer
57 | true
58 | true
59 | true
60 | None
61 | i386, x86_64
62 | HttpClientHandler
63 |
64 |
65 | true
66 | full
67 | false
68 | bin\iPhone\Debug
69 | DEBUG;ENABLE_TEST_CLOUD;
70 | prompt
71 | 4
72 | iPhone Developer
73 | true
74 | true
75 | true
76 | true
77 | true
78 | true
79 | true
80 | Entitlements.plist
81 | SdkOnly
82 | ARMv7, ARM64
83 | HttpClientHandler
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 | ViewController.cs
112 |
113 |
114 |
115 |
116 |
117 | {C7B500C0-28FC-432F-93E8-C391BC182BA5}
118 | WeChat.iOS
119 |
120 |
121 |
122 |
--------------------------------------------------------------------------------
/WeChat.iOS.Samples/WeChatAPI.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Foundation;
3 | using WeChat.iOS;
4 |
5 | namespace WeChat.iOS.Samples
6 | {
7 | public class WeChatAPI: WXApiDelegate
8 | {
9 | //微信登录
10 | public bool Log(string appID)
11 | {
12 | var result = WXApi.RegisterApp(appID);
13 | return result;
14 | }
15 | //微信链接打开
16 | public bool Open(NSUrl url)
17 | {
18 | var result = WXApi.HandleOpenURL(url, this);
19 | return result;
20 | }
21 | //请求打开微信
22 | public override void OnReq(BaseReq req)
23 | {
24 |
25 | }
26 | //响应微信
27 | public override void OnResp(BaseResp resp)
28 | {
29 |
30 | }
31 |
32 | //发送信息到朋友圈
33 | public bool SendText(string text)
34 | {
35 | SendMessageToWXReq req = new SendMessageToWXReq();
36 | req.Text = text;
37 | req.BText = true;
38 | req.Scene = 1;
39 | WXApi.SendReq(req);
40 |
41 | return true;
42 | }
43 |
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/WeChat.iOS/ApiDefinition.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | using UIKit;
4 | using Foundation;
5 | using ObjCRuntime;
6 | using CoreGraphics;
7 |
8 | namespace WeChat.iOS
9 | {
10 | // @protocol WechatAuthAPIDelegate
11 | [Protocol, Model]
12 | [BaseType(typeof(NSObject))]
13 | interface WechatAuthAPIDelegate
14 | {
15 | // @optional -(void)onAuthGotQrcode:(UIImage *)image;
16 | [Export("onAuthGotQrcode:")]
17 | void OnAuthGotQrcode(UIImage image);
18 |
19 | // @optional -(void)onQrcodeScanned;
20 | [Export("onQrcodeScanned")]
21 | void OnQrcodeScanned();
22 |
23 | // @optional -(void)onAuthFinish:(int)errCode AuthCode:(NSString *)authCode;
24 | [Export("onAuthFinish:AuthCode:")]
25 | void OnAuthFinish(int errCode, string authCode);
26 | }
27 |
28 | // @interface WechatAuthSDK : NSObject
29 | [BaseType(typeof(NSObject))]
30 | interface WechatAuthSDK
31 | {
32 | [Wrap("WeakDelegate")]
33 | WechatAuthAPIDelegate Delegate { get; set; }
34 |
35 | // @property (nonatomic, weak) id delegate;
36 | [NullAllowed, Export("delegate", ArgumentSemantic.Weak)]
37 | NSObject WeakDelegate { get; set; }
38 |
39 | // @property (readonly, nonatomic) NSString * sdkVersion;
40 | [Export("sdkVersion")]
41 | string SdkVersion { get; }
42 |
43 | // -(BOOL)Auth:(NSString *)appId nonceStr:(NSString *)nonceStr timeStamp:(NSString *)timeStamp scope:(NSString *)scope signature:(NSString *)signature schemeData:(NSString *)schemeData;
44 | [Export("Auth:nonceStr:timeStamp:scope:signature:schemeData:")]
45 | bool Auth(string appId, string nonceStr, string timeStamp, string scope, string signature, string schemeData);
46 |
47 | // -(BOOL)StopAuth;
48 | [Export("StopAuth")]
49 | //[Verify(MethodToProperty)]
50 | bool StopAuth { get; }
51 | }
52 |
53 | // @interface BaseReq : NSObject
54 | [BaseType(typeof(NSObject))]
55 | interface BaseReq
56 | {
57 | // @property (assign, nonatomic) int type;
58 | [Export("type")]
59 | int Type { get; set; }
60 |
61 | // @property (retain, nonatomic) NSString * openID;
62 | [Export("openID", ArgumentSemantic.Retain)]
63 | string OpenID { get; set; }
64 | }
65 |
66 | // @interface BaseResp : NSObject
67 | [BaseType(typeof(NSObject))]
68 | interface BaseResp
69 | {
70 | // @property (assign, nonatomic) int errCode;
71 | [Export("errCode")]
72 | int ErrCode { get; set; }
73 |
74 | // @property (retain, nonatomic) NSString * errStr;
75 | [Export("errStr", ArgumentSemantic.Retain)]
76 | string ErrStr { get; set; }
77 |
78 | // @property (assign, nonatomic) int type;
79 | [Export("type")]
80 | int Type { get; set; }
81 | }
82 |
83 | // @interface PayReq : BaseReq
84 | [BaseType(typeof(BaseReq))]
85 | interface PayReq
86 | {
87 | // @property (retain, nonatomic) NSString * partnerId;
88 | [Export("partnerId", ArgumentSemantic.Retain)]
89 | string PartnerId { get; set; }
90 |
91 | // @property (retain, nonatomic) NSString * prepayId;
92 | [Export("prepayId", ArgumentSemantic.Retain)]
93 | string PrepayId { get; set; }
94 |
95 | // @property (retain, nonatomic) NSString * nonceStr;
96 | [Export("nonceStr", ArgumentSemantic.Retain)]
97 | string NonceStr { get; set; }
98 |
99 | // @property (assign, nonatomic) UInt32 timeStamp;
100 | [Export("timeStamp")]
101 | uint TimeStamp { get; set; }
102 |
103 | // @property (retain, nonatomic) NSString * package;
104 | [Export("package", ArgumentSemantic.Retain)]
105 | string Package { get; set; }
106 |
107 | // @property (retain, nonatomic) NSString * sign;
108 | [Export("sign", ArgumentSemantic.Retain)]
109 | string Sign { get; set; }
110 | }
111 |
112 | // @interface PayResp : BaseResp
113 | [BaseType(typeof(BaseResp))]
114 | interface PayResp
115 | {
116 | // @property (retain, nonatomic) NSString * returnKey;
117 | [Export("returnKey", ArgumentSemantic.Retain)]
118 | string ReturnKey { get; set; }
119 | }
120 |
121 | // @interface HBReq : BaseReq
122 | [BaseType(typeof(BaseReq))]
123 | interface HBReq
124 | {
125 | // @property (retain, nonatomic) NSString * nonceStr;
126 | [Export("nonceStr", ArgumentSemantic.Retain)]
127 | string NonceStr { get; set; }
128 |
129 | // @property (assign, nonatomic) UInt32 timeStamp;
130 | [Export("timeStamp")]
131 | uint TimeStamp { get; set; }
132 |
133 | // @property (retain, nonatomic) NSString * package;
134 | [Export("package", ArgumentSemantic.Retain)]
135 | string Package { get; set; }
136 |
137 | // @property (retain, nonatomic) NSString * sign;
138 | [Export("sign", ArgumentSemantic.Retain)]
139 | string Sign { get; set; }
140 | }
141 |
142 | // @interface HBResp : BaseResp
143 | [BaseType(typeof(BaseResp))]
144 | interface HBResp
145 | {
146 | }
147 |
148 | // @interface SendAuthReq : BaseReq
149 | [BaseType(typeof(BaseReq))]
150 | interface SendAuthReq
151 | {
152 | // @property (retain, nonatomic) NSString * scope;
153 | [Export("scope", ArgumentSemantic.Retain)]
154 | string Scope { get; set; }
155 |
156 | // @property (retain, nonatomic) NSString * state;
157 | [Export("state", ArgumentSemantic.Retain)]
158 | string State { get; set; }
159 | }
160 |
161 | // @interface SendAuthResp : BaseResp
162 | [BaseType(typeof(BaseResp))]
163 | interface SendAuthResp
164 | {
165 | // @property (retain, nonatomic) NSString * code;
166 | [Export("code", ArgumentSemantic.Retain)]
167 | string Code { get; set; }
168 |
169 | // @property (retain, nonatomic) NSString * state;
170 | [Export("state", ArgumentSemantic.Retain)]
171 | string State { get; set; }
172 |
173 | // @property (retain, nonatomic) NSString * lang;
174 | [Export("lang", ArgumentSemantic.Retain)]
175 | string Lang { get; set; }
176 |
177 | // @property (retain, nonatomic) NSString * country;
178 | [Export("country", ArgumentSemantic.Retain)]
179 | string Country { get; set; }
180 | }
181 |
182 | // @interface SendMessageToWXReq : BaseReq
183 | [BaseType(typeof(BaseReq))]
184 | interface SendMessageToWXReq
185 | {
186 | // @property (retain, nonatomic) NSString * text;
187 | [Export("text", ArgumentSemantic.Retain)]
188 | string Text { get; set; }
189 |
190 | // @property (retain, nonatomic) WXMediaMessage * message;
191 | [Export("message", ArgumentSemantic.Retain)]
192 | WXMediaMessage Message { get; set; }
193 |
194 | // @property (assign, nonatomic) BOOL bText;
195 | [Export("bText")]
196 | bool BText { get; set; }
197 |
198 | // @property (assign, nonatomic) int scene;
199 | [Export("scene")]
200 | int Scene { get; set; }
201 | }
202 |
203 | // @interface SendMessageToWXResp : BaseResp
204 | [BaseType(typeof(BaseResp))]
205 | interface SendMessageToWXResp
206 | {
207 | // @property (retain, nonatomic) NSString * lang;
208 | [Export("lang", ArgumentSemantic.Retain)]
209 | string Lang { get; set; }
210 |
211 | // @property (retain, nonatomic) NSString * country;
212 | [Export("country", ArgumentSemantic.Retain)]
213 | string Country { get; set; }
214 | }
215 |
216 | // @interface GetMessageFromWXReq : BaseReq
217 | [BaseType(typeof(BaseReq))]
218 | interface GetMessageFromWXReq
219 | {
220 | // @property (retain, nonatomic) NSString * lang;
221 | [Export("lang", ArgumentSemantic.Retain)]
222 | string Lang { get; set; }
223 |
224 | // @property (retain, nonatomic) NSString * country;
225 | [Export("country", ArgumentSemantic.Retain)]
226 | string Country { get; set; }
227 | }
228 |
229 | // @interface GetMessageFromWXResp : BaseResp
230 | [BaseType(typeof(BaseResp))]
231 | interface GetMessageFromWXResp
232 | {
233 | // @property (retain, nonatomic) NSString * text;
234 | [Export("text", ArgumentSemantic.Retain)]
235 | string Text { get; set; }
236 |
237 | // @property (retain, nonatomic) WXMediaMessage * message;
238 | [Export("message", ArgumentSemantic.Retain)]
239 | WXMediaMessage Message { get; set; }
240 |
241 | // @property (assign, nonatomic) BOOL bText;
242 | [Export("bText")]
243 | bool BText { get; set; }
244 | }
245 |
246 | // @interface ShowMessageFromWXReq : BaseReq
247 | [BaseType(typeof(BaseReq))]
248 | interface ShowMessageFromWXReq
249 | {
250 | // @property (retain, nonatomic) WXMediaMessage * message;
251 | [Export("message", ArgumentSemantic.Retain)]
252 | WXMediaMessage Message { get; set; }
253 |
254 | // @property (retain, nonatomic) NSString * lang;
255 | [Export("lang", ArgumentSemantic.Retain)]
256 | string Lang { get; set; }
257 |
258 | // @property (retain, nonatomic) NSString * country;
259 | [Export("country", ArgumentSemantic.Retain)]
260 | string Country { get; set; }
261 | }
262 |
263 | // @interface ShowMessageFromWXResp : BaseResp
264 | [BaseType(typeof(BaseResp))]
265 | interface ShowMessageFromWXResp
266 | {
267 | }
268 |
269 | // @interface LaunchFromWXReq : BaseReq
270 | [BaseType(typeof(BaseReq))]
271 | interface LaunchFromWXReq
272 | {
273 | // @property (retain, nonatomic) WXMediaMessage * message;
274 | [Export("message", ArgumentSemantic.Retain)]
275 | WXMediaMessage Message { get; set; }
276 |
277 | // @property (retain, nonatomic) NSString * lang;
278 | [Export("lang", ArgumentSemantic.Retain)]
279 | string Lang { get; set; }
280 |
281 | // @property (retain, nonatomic) NSString * country;
282 | [Export("country", ArgumentSemantic.Retain)]
283 | string Country { get; set; }
284 | }
285 |
286 | // @interface OpenTempSessionReq : BaseReq
287 | [BaseType(typeof(BaseReq))]
288 | interface OpenTempSessionReq
289 | {
290 | // @property (retain, nonatomic) NSString * username;
291 | [Export("username", ArgumentSemantic.Retain)]
292 | string Username { get; set; }
293 |
294 | // @property (retain, nonatomic) NSString * sessionFrom;
295 | [Export("sessionFrom", ArgumentSemantic.Retain)]
296 | string SessionFrom { get; set; }
297 | }
298 |
299 | // @interface OpenWebviewReq : BaseReq
300 | [BaseType(typeof(BaseReq))]
301 | interface OpenWebviewReq
302 | {
303 | // @property (retain, nonatomic) NSString * url;
304 | [Export("url", ArgumentSemantic.Retain)]
305 | string Url { get; set; }
306 | }
307 |
308 | // @interface OpenWebviewResp : BaseResp
309 | [BaseType(typeof(BaseResp))]
310 | interface OpenWebviewResp
311 | {
312 | }
313 |
314 | // @interface OpenTempSessionResp : BaseResp
315 | [BaseType(typeof(BaseResp))]
316 | interface OpenTempSessionResp
317 | {
318 | }
319 |
320 | // @interface OpenRankListReq : BaseReq
321 | [BaseType(typeof(BaseReq))]
322 | interface OpenRankListReq
323 | {
324 | }
325 |
326 | // @interface OpenRankListResp : BaseResp
327 | [BaseType(typeof(BaseResp))]
328 | interface OpenRankListResp
329 | {
330 | }
331 |
332 | // @interface JumpToBizProfileReq : BaseReq
333 | [BaseType(typeof(BaseReq))]
334 | interface JumpToBizProfileReq
335 | {
336 | // @property (retain, nonatomic) NSString * username;
337 | [Export("username", ArgumentSemantic.Retain)]
338 | string Username { get; set; }
339 |
340 | // @property (retain, nonatomic) NSString * extMsg;
341 | [Export("extMsg", ArgumentSemantic.Retain)]
342 | string ExtMsg { get; set; }
343 |
344 | // @property (assign, nonatomic) int profileType;
345 | [Export("profileType")]
346 | int ProfileType { get; set; }
347 | }
348 |
349 | // @interface JumpToBizWebviewReq : BaseReq
350 | [BaseType(typeof(BaseReq))]
351 | interface JumpToBizWebviewReq
352 | {
353 | // @property (assign, nonatomic) int webType;
354 | [Export("webType")]
355 | int WebType { get; set; }
356 |
357 | // @property (retain, nonatomic) NSString * tousrname;
358 | [Export("tousrname", ArgumentSemantic.Retain)]
359 | string Tousrname { get; set; }
360 |
361 | // @property (retain, nonatomic) NSString * extMsg;
362 | [Export("extMsg", ArgumentSemantic.Retain)]
363 | string ExtMsg { get; set; }
364 | }
365 |
366 | // @interface WXCardItem : NSObject
367 | [BaseType(typeof(NSObject))]
368 | interface WXCardItem
369 | {
370 | // @property (retain, nonatomic) NSString * cardId;
371 | [Export("cardId", ArgumentSemantic.Retain)]
372 | string CardId { get; set; }
373 |
374 | // @property (retain, nonatomic) NSString * extMsg;
375 | [Export("extMsg", ArgumentSemantic.Retain)]
376 | string ExtMsg { get; set; }
377 |
378 | // @property (assign, nonatomic) UInt32 cardState;
379 | [Export("cardState")]
380 | uint CardState { get; set; }
381 |
382 | // @property (retain, nonatomic) NSString * encryptCode;
383 | [Export("encryptCode", ArgumentSemantic.Retain)]
384 | string EncryptCode { get; set; }
385 |
386 | // @property (retain, nonatomic) NSString * appID;
387 | [Export("appID", ArgumentSemantic.Retain)]
388 | string AppID { get; set; }
389 | }
390 |
391 | // @interface AddCardToWXCardPackageReq : BaseReq
392 | [BaseType(typeof(BaseReq))]
393 | interface AddCardToWXCardPackageReq
394 | {
395 | // @property (retain, nonatomic) NSArray * cardAry;
396 | [Export("cardAry", ArgumentSemantic.Retain)]
397 | //[Verify(StronglyTypedNSArray)]
398 | NSObject[] CardAry { get; set; }
399 | }
400 |
401 | // @interface AddCardToWXCardPackageResp : BaseResp
402 | [BaseType(typeof(BaseResp))]
403 | interface AddCardToWXCardPackageResp
404 | {
405 | // @property (retain, nonatomic) NSArray * cardAry;
406 | [Export("cardAry", ArgumentSemantic.Retain)]
407 | //[Verify(StronglyTypedNSArray)]
408 | NSObject[] CardAry { get; set; }
409 | }
410 |
411 | // @interface WXChooseCardReq : BaseReq
412 | [BaseType(typeof(BaseReq))]
413 | interface WXChooseCardReq
414 | {
415 | // @property (nonatomic, strong) NSString * appID;
416 | [Export("appID", ArgumentSemantic.Strong)]
417 | string AppID { get; set; }
418 |
419 | // @property (assign, nonatomic) UInt32 shopID;
420 | [Export("shopID")]
421 | uint ShopID { get; set; }
422 |
423 | // @property (assign, nonatomic) UInt32 canMultiSelect;
424 | [Export("canMultiSelect")]
425 | uint CanMultiSelect { get; set; }
426 |
427 | // @property (nonatomic, strong) NSString * cardType;
428 | [Export("cardType", ArgumentSemantic.Strong)]
429 | string CardType { get; set; }
430 |
431 | // @property (nonatomic, strong) NSString * cardTpID;
432 | [Export("cardTpID", ArgumentSemantic.Strong)]
433 | string CardTpID { get; set; }
434 |
435 | // @property (nonatomic, strong) NSString * signType;
436 | [Export("signType", ArgumentSemantic.Strong)]
437 | string SignType { get; set; }
438 |
439 | // @property (nonatomic, strong) NSString * cardSign;
440 | [Export("cardSign", ArgumentSemantic.Strong)]
441 | string CardSign { get; set; }
442 |
443 | // @property (assign, nonatomic) UInt32 timeStamp;
444 | [Export("timeStamp")]
445 | uint TimeStamp { get; set; }
446 |
447 | // @property (nonatomic, strong) NSString * nonceStr;
448 | [Export("nonceStr", ArgumentSemantic.Strong)]
449 | string NonceStr { get; set; }
450 | }
451 |
452 | // @interface WXChooseCardResp : BaseResp
453 | [BaseType(typeof(BaseResp))]
454 | interface WXChooseCardResp
455 | {
456 | // @property (retain, nonatomic) NSArray * cardAry;
457 | [Export("cardAry", ArgumentSemantic.Retain)]
458 | //[Verify(StronglyTypedNSArray)]
459 | NSObject[] CardAry { get; set; }
460 | }
461 |
462 | // @interface WXMediaMessage : NSObject
463 | [BaseType(typeof(NSObject))]
464 | interface WXMediaMessage
465 | {
466 | // +(WXMediaMessage *)message;
467 | [Static]
468 | [Export("message")]
469 | //[Verify(MethodToProperty)]
470 | WXMediaMessage Message { get; }
471 |
472 | // @property (retain, nonatomic) NSString * title;
473 | [Export("title", ArgumentSemantic.Retain)]
474 | string Title { get; set; }
475 |
476 | // @property (retain, nonatomic) NSString * description;
477 | [Export("description", ArgumentSemantic.Retain)]
478 | string Description { get; set; }
479 |
480 | // @property (retain, nonatomic) NSData * thumbData;
481 | [Export("thumbData", ArgumentSemantic.Retain)]
482 | NSData ThumbData { get; set; }
483 |
484 | // @property (retain, nonatomic) NSString * mediaTagName;
485 | [Export("mediaTagName", ArgumentSemantic.Retain)]
486 | string MediaTagName { get; set; }
487 |
488 | // @property (retain, nonatomic) NSString * messageExt;
489 | [Export("messageExt", ArgumentSemantic.Retain)]
490 | string MessageExt { get; set; }
491 |
492 | // @property (retain, nonatomic) NSString * messageAction;
493 | [Export("messageAction", ArgumentSemantic.Retain)]
494 | string MessageAction { get; set; }
495 |
496 | // @property (retain, nonatomic) id mediaObject;
497 | [Export("mediaObject", ArgumentSemantic.Retain)]
498 | NSObject MediaObject { get; set; }
499 |
500 | // -(void)setThumbImage:(UIImage *)image;
501 | [Export("setThumbImage:")]
502 | void SetThumbImage(UIImage image);
503 | }
504 |
505 | // @interface WXImageObject : NSObject
506 | [BaseType(typeof(NSObject))]
507 | interface WXImageObject
508 | {
509 | // +(WXImageObject *)object;
510 | [Static]
511 | [Export("object")]
512 | //[Verify(MethodToProperty)]
513 | WXImageObject Object { get; }
514 |
515 | // @property (retain, nonatomic) NSData * imageData;
516 | [Export("imageData", ArgumentSemantic.Retain)]
517 | NSData ImageData { get; set; }
518 | }
519 |
520 | // @interface WXMusicObject : NSObject
521 | [BaseType(typeof(NSObject))]
522 | interface WXMusicObject
523 | {
524 | // +(WXMusicObject *)object;
525 | [Static]
526 | [Export("object")]
527 | //[Verify(MethodToProperty)]
528 | WXMusicObject Object { get; }
529 |
530 | // @property (retain, nonatomic) NSString * musicUrl;
531 | [Export("musicUrl", ArgumentSemantic.Retain)]
532 | string MusicUrl { get; set; }
533 |
534 | // @property (retain, nonatomic) NSString * musicLowBandUrl;
535 | [Export("musicLowBandUrl", ArgumentSemantic.Retain)]
536 | string MusicLowBandUrl { get; set; }
537 |
538 | // @property (retain, nonatomic) NSString * musicDataUrl;
539 | [Export("musicDataUrl", ArgumentSemantic.Retain)]
540 | string MusicDataUrl { get; set; }
541 |
542 | // @property (retain, nonatomic) NSString * musicLowBandDataUrl;
543 | [Export("musicLowBandDataUrl", ArgumentSemantic.Retain)]
544 | string MusicLowBandDataUrl { get; set; }
545 | }
546 |
547 | // @interface WXVideoObject : NSObject
548 | [BaseType(typeof(NSObject))]
549 | interface WXVideoObject
550 | {
551 | // +(WXVideoObject *)object;
552 | [Static]
553 | [Export("object")]
554 | //[Verify(MethodToProperty)]
555 | WXVideoObject Object { get; }
556 |
557 | // @property (retain, nonatomic) NSString * videoUrl;
558 | [Export("videoUrl", ArgumentSemantic.Retain)]
559 | string VideoUrl { get; set; }
560 |
561 | // @property (retain, nonatomic) NSString * videoLowBandUrl;
562 | [Export("videoLowBandUrl", ArgumentSemantic.Retain)]
563 | string VideoLowBandUrl { get; set; }
564 | }
565 |
566 | // @interface WXWebpageObject : NSObject
567 | [BaseType(typeof(NSObject))]
568 | interface WXWebpageObject
569 | {
570 | // +(WXWebpageObject *)object;
571 | [Static]
572 | [Export("object")]
573 | //[Verify(MethodToProperty)]
574 | WXWebpageObject Object { get; }
575 |
576 | // @property (retain, nonatomic) NSString * webpageUrl;
577 | [Export("webpageUrl", ArgumentSemantic.Retain)]
578 | string WebpageUrl { get; set; }
579 | }
580 |
581 | // @interface WXAppExtendObject : NSObject
582 | [BaseType(typeof(NSObject))]
583 | interface WXAppExtendObject
584 | {
585 | // +(WXAppExtendObject *)object;
586 | [Static]
587 | [Export("object")]
588 | //[Verify(MethodToProperty)]
589 | WXAppExtendObject Object { get; }
590 |
591 | // @property (retain, nonatomic) NSString * url;
592 | [Export("url", ArgumentSemantic.Retain)]
593 | string Url { get; set; }
594 |
595 | // @property (retain, nonatomic) NSString * extInfo;
596 | [Export("extInfo", ArgumentSemantic.Retain)]
597 | string ExtInfo { get; set; }
598 |
599 | // @property (retain, nonatomic) NSData * fileData;
600 | [Export("fileData", ArgumentSemantic.Retain)]
601 | NSData FileData { get; set; }
602 | }
603 |
604 | // @interface WXEmoticonObject : NSObject
605 | [BaseType(typeof(NSObject))]
606 | interface WXEmoticonObject
607 | {
608 | // +(WXEmoticonObject *)object;
609 | [Static]
610 | [Export("object")]
611 | //[Verify(MethodToProperty)]
612 | WXEmoticonObject Object { get; }
613 |
614 | // @property (retain, nonatomic) NSData * emoticonData;
615 | [Export("emoticonData", ArgumentSemantic.Retain)]
616 | NSData EmoticonData { get; set; }
617 | }
618 |
619 | // @interface WXFileObject : NSObject
620 | [BaseType(typeof(NSObject))]
621 | interface WXFileObject
622 | {
623 | // +(WXFileObject *)object;
624 | [Static]
625 | [Export("object")]
626 | //[Verify(MethodToProperty)]
627 | WXFileObject Object { get; }
628 |
629 | // @property (retain, nonatomic) NSString * fileExtension;
630 | [Export("fileExtension", ArgumentSemantic.Retain)]
631 | string FileExtension { get; set; }
632 |
633 | // @property (retain, nonatomic) NSData * fileData;
634 | [Export("fileData", ArgumentSemantic.Retain)]
635 | NSData FileData { get; set; }
636 | }
637 |
638 | // @interface WXLocationObject : NSObject
639 | [BaseType(typeof(NSObject))]
640 | interface WXLocationObject
641 | {
642 | // +(WXLocationObject *)object;
643 | [Static]
644 | [Export("object")]
645 | //[Verify(MethodToProperty)]
646 | WXLocationObject Object { get; }
647 |
648 | // @property (assign, nonatomic) double lng;
649 | [Export("lng")]
650 | double Lng { get; set; }
651 |
652 | // @property (assign, nonatomic) double lat;
653 | [Export("lat")]
654 | double Lat { get; set; }
655 | }
656 |
657 | // @interface WXTextObject : NSObject
658 | [BaseType(typeof(NSObject))]
659 | interface WXTextObject
660 | {
661 | // +(WXTextObject *)object;
662 | [Static]
663 | [Export("object")]
664 | //[Verify(MethodToProperty)]
665 | WXTextObject Object { get; }
666 |
667 | // @property (retain, nonatomic) NSString * contentText;
668 | [Export("contentText", ArgumentSemantic.Retain)]
669 | string ContentText { get; set; }
670 | }
671 |
672 | // @protocol WXApiDelegate
673 | [Protocol, Model]
674 | [BaseType(typeof(NSObject))]
675 | interface WXApiDelegate
676 | {
677 | // @optional -(void)onReq:(BaseReq *)req;
678 | [Export("onReq:")]
679 | void OnReq(BaseReq req);
680 |
681 | // @optional -(void)onResp:(BaseResp *)resp;
682 | [Export("onResp:")]
683 | void OnResp(BaseResp resp);
684 | }
685 |
686 | // @interface WXApi : NSObject
687 | [BaseType(typeof(NSObject))]
688 | interface WXApi
689 | {
690 | // +(BOOL)registerApp:(NSString *)appid;
691 | [Static]
692 | [Export("registerApp:")]
693 | bool RegisterApp(string appid);
694 |
695 | // +(BOOL)registerApp:(NSString *)appid enableMTA:(BOOL)isEnableMTA;
696 | [Static]
697 | [Export("registerApp:enableMTA:")]
698 | bool RegisterApp(string appid, bool isEnableMTA);
699 |
700 | // +(void)registerAppSupportContentFlag:(UInt64)typeFlag;
701 | [Static]
702 | [Export("registerAppSupportContentFlag:")]
703 | void RegisterAppSupportContentFlag(ulong typeFlag);
704 |
705 | // +(BOOL)handleOpenURL:(NSURL *)url delegate:(id)delegate;
706 | [Static]
707 | [Export("handleOpenURL:delegate:")]
708 | bool HandleOpenURL(NSUrl url, WXApiDelegate @delegate);
709 |
710 | // +(BOOL)isWXAppInstalled;
711 | [Static]
712 | [Export("isWXAppInstalled")]
713 | //[Verify(MethodToProperty)]
714 | bool IsWXAppInstalled { get; }
715 |
716 | // +(BOOL)isWXAppSupportApi;
717 | [Static]
718 | [Export("isWXAppSupportApi")]
719 | //[Verify(MethodToProperty)]
720 | bool IsWXAppSupportApi { get; }
721 |
722 | // +(NSString *)getWXAppInstallUrl;
723 | [Static]
724 | [Export("getWXAppInstallUrl")]
725 | //[Verify(MethodToProperty)]
726 | string WXAppInstallUrl { get; }
727 |
728 | // +(NSString *)getApiVersion;
729 | [Static]
730 | [Export("getApiVersion")]
731 | //[Verify(MethodToProperty)]
732 | string ApiVersion { get; }
733 |
734 | // +(BOOL)openWXApp;
735 | [Static]
736 | [Export("openWXApp")]
737 | //[Verify(MethodToProperty)]
738 | bool OpenWXApp { get; }
739 |
740 | // +(BOOL)sendReq:(BaseReq *)req;
741 | [Static]
742 | [Export("sendReq:")]
743 | bool SendReq(BaseReq req);
744 |
745 | // +(BOOL)sendAuthReq:(SendAuthReq *)req viewController:(UIViewController *)viewController delegate:(id)delegate;
746 | [Static]
747 | [Export("sendAuthReq:viewController:delegate:")]
748 | bool SendAuthReq(SendAuthReq req, UIViewController viewController, WXApiDelegate @delegate);
749 |
750 | // +(BOOL)sendResp:(BaseResp *)resp;
751 | [Static]
752 | [Export("sendResp:")]
753 | bool SendResp(BaseResp resp);
754 | }
755 | }
756 |
--------------------------------------------------------------------------------
/WeChat.iOS/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 |
4 | using Foundation;
5 |
6 | // This attribute allows you to mark your assemblies as “safe to link”.
7 | // When the attribute is present, the linker—if enabled—will process the assembly
8 | // even if you’re using the “Link SDK assemblies only” option, which is the default for device builds.
9 |
10 | [assembly: LinkerSafe]
11 |
12 | // Information about this assembly is defined by the following attributes.
13 | // Change them to the values specific to your project.
14 |
15 | [assembly: AssemblyTitle("WeChat.iOS")]
16 | [assembly: AssemblyDescription("")]
17 | [assembly: AssemblyConfiguration("")]
18 | [assembly: AssemblyCompany("")]
19 | [assembly: AssemblyProduct("")]
20 | [assembly: AssemblyCopyright("${AuthorCopyright}")]
21 | [assembly: AssemblyTrademark("")]
22 | [assembly: AssemblyCulture("")]
23 |
24 | // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
25 | // The form "{Major}.{Minor}.*" will automatically update the build and revision,
26 | // and "{Major}.{Minor}.{Build}.*" will update just the revision.
27 |
28 | [assembly: AssemblyVersion("1.0.*")]
29 |
30 | // The following attributes are used to specify the signing key for the assembly,
31 | // if desired. See the Mono documentation for more information about signing.
32 |
33 | //[assembly: AssemblyDelaySign(false)]
34 | //[assembly: AssemblyKeyFile("")]
35 |
--------------------------------------------------------------------------------
/WeChat.iOS/Structs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace WeChat.iOS
4 | {
5 | public enum AuthErrCode
6 | {
7 | Ok = 0,
8 | NormalErr = -1,
9 | NetworkErr = -2,
10 | GetQrcodeFailed = -3,
11 | Cancel = -4,
12 | Timeout = -5
13 | }
14 |
15 | public enum WXErrCode
16 | {
17 | Success = 0,
18 | ErrCodeCommon = -1,
19 | ErrCodeUserCancel = -2,
20 | ErrCodeSentFail = -3,
21 | ErrCodeAuthDeny = -4,
22 | ErrCodeUnsupport = -5
23 | }
24 |
25 | public enum WXScene : uint
26 | {
27 | Session = 0,
28 | Timeline = 1,
29 | Favorite = 2
30 | }
31 |
32 | public enum WXAPISupport : uint
33 | {
34 | WXAPISupportSession = 0
35 | }
36 |
37 | public enum WXBizProfileType : uint
38 | {
39 | Normal = 0,
40 | Device = 1
41 | }
42 |
43 | public enum WXMPWebviewType : uint
44 | {
45 | WXMPWebviewType_Ad = 0
46 | }
47 |
48 | public enum enAppSupportContentFlag : ulong
49 | {
50 | Nocontent = 0,
51 | Text = 1,
52 | Picture = 2,
53 | Location = 4,
54 | Video = 8,
55 | Audio = 16,
56 | Webpage = 32,
57 | Doc = 64,
58 | Docx = 128,
59 | Ppt = 256,
60 | Pptx = 512,
61 | Xls = 1024,
62 | Xlsx = 2048,
63 | Pdf = 4096
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/WeChat.iOS/WeChat.iOS.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | AnyCPU
6 | {C7B500C0-28FC-432F-93E8-C391BC182BA5}
7 | {8FFB629D-F513-41CE-95D2-7ECE97B6EEEC};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
8 | Library
9 | WeChat.iOS
10 | WeChat.iOS
11 | Resources
12 |
13 |
14 | true
15 | full
16 | false
17 | bin\Debug
18 | DEBUG;
19 | prompt
20 | 4
21 | true
22 |
23 |
24 | true
25 | bin\Release
26 | prompt
27 | 4
28 | true
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | Static
46 | True
47 | CFNetwork CoreTelephony Security SystemConfiguration
48 | -ObjC -all_load -lstdc++ -lsqlite3.0 -lz
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/WeChatSDK.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2012
4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WeChat.iOS", "WeChat.iOS\WeChat.iOS.csproj", "{C7B500C0-28FC-432F-93E8-C391BC182BA5}"
5 | EndProject
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WeChat.iOS.Samples", "WeChat.iOS.Samples\WeChat.iOS.Samples.csproj", "{B02E9FBB-C460-496E-96C3-EEE5D659ABE8}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | Debug|iPhoneSimulator = Debug|iPhoneSimulator
13 | Release|iPhone = Release|iPhone
14 | Release|iPhoneSimulator = Release|iPhoneSimulator
15 | Debug|iPhone = Debug|iPhone
16 | EndGlobalSection
17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
18 | {C7B500C0-28FC-432F-93E8-C391BC182BA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
19 | {C7B500C0-28FC-432F-93E8-C391BC182BA5}.Debug|Any CPU.Build.0 = Debug|Any CPU
20 | {C7B500C0-28FC-432F-93E8-C391BC182BA5}.Release|Any CPU.ActiveCfg = Release|Any CPU
21 | {C7B500C0-28FC-432F-93E8-C391BC182BA5}.Release|Any CPU.Build.0 = Release|Any CPU
22 | {C7B500C0-28FC-432F-93E8-C391BC182BA5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
23 | {C7B500C0-28FC-432F-93E8-C391BC182BA5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
24 | {C7B500C0-28FC-432F-93E8-C391BC182BA5}.Release|iPhone.ActiveCfg = Release|Any CPU
25 | {C7B500C0-28FC-432F-93E8-C391BC182BA5}.Release|iPhone.Build.0 = Release|Any CPU
26 | {C7B500C0-28FC-432F-93E8-C391BC182BA5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
27 | {C7B500C0-28FC-432F-93E8-C391BC182BA5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
28 | {C7B500C0-28FC-432F-93E8-C391BC182BA5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
29 | {C7B500C0-28FC-432F-93E8-C391BC182BA5}.Debug|iPhone.Build.0 = Debug|Any CPU
30 | {B02E9FBB-C460-496E-96C3-EEE5D659ABE8}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
31 | {B02E9FBB-C460-496E-96C3-EEE5D659ABE8}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
32 | {B02E9FBB-C460-496E-96C3-EEE5D659ABE8}.Release|Any CPU.ActiveCfg = Release|iPhone
33 | {B02E9FBB-C460-496E-96C3-EEE5D659ABE8}.Release|Any CPU.Build.0 = Release|iPhone
34 | {B02E9FBB-C460-496E-96C3-EEE5D659ABE8}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
35 | {B02E9FBB-C460-496E-96C3-EEE5D659ABE8}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
36 | {B02E9FBB-C460-496E-96C3-EEE5D659ABE8}.Release|iPhone.ActiveCfg = Release|iPhone
37 | {B02E9FBB-C460-496E-96C3-EEE5D659ABE8}.Release|iPhone.Build.0 = Release|iPhone
38 | {B02E9FBB-C460-496E-96C3-EEE5D659ABE8}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
39 | {B02E9FBB-C460-496E-96C3-EEE5D659ABE8}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
40 | {B02E9FBB-C460-496E-96C3-EEE5D659ABE8}.Debug|iPhone.ActiveCfg = Debug|iPhone
41 | {B02E9FBB-C460-496E-96C3-EEE5D659ABE8}.Debug|iPhone.Build.0 = Debug|iPhone
42 | EndGlobalSection
43 | EndGlobal
44 |
--------------------------------------------------------------------------------