從開始做這一塊的工作開始,就開始找各種的資料,最后還是老老實實的去看官方文檔。
對于Xamarin.Android的綁定屬于純jar的綁定,這個難度較小,添加Bindings Library,將libammsdk.jar添加到指定的文件夾中編譯,不出意外的會報出兩個錯誤,解決辦法是:雙擊錯誤提示到相應(yīng)的文件,然后找到錯誤提示中提到的類的定義,類定義的上面有路徑,拷貝到Transforms文件夾下的Metadata.xml文件中,如下圖所示,這樣就ok了,編譯通過
在調(diào)用的微信API的過程中,要求在微信申請的AppID與應(yīng)用的包名以及應(yīng)用簽名要完全對應(yīng)起來,有一個沒有對應(yīng)起來,在調(diào)用的時候會出現(xiàn)調(diào)用微信閃退的情況。
另外,我在App中用的是微信的網(wǎng)頁鏈接分享功能,在獲取圖片的byte數(shù)組的時候用的是下面幾行代碼
1 2 3 4 5 6 7 | Bitmap thumb=BitmapFactory.DecodeResource(Utility.resources,Resource.Drawable.icon); MemoryStream stream= new MemoryStream(); thumb.Compress(Bitmap.CompressFormat.Png,0,stream); byte [] bitmapData=stream.ToArray(); |
還有一點要注意的是Resource.Drawable.icon對應(yīng)的資源要在每個drawable文件夾里都放一份icon,不然的話獲取的bitmapData會有問題,調(diào)用分享功能的時候,程序會出現(xiàn)沒有響應(yīng)的情況。
下面來說一下Xamarin.iOS的綁定,這個相對來說比較麻煩,也是在QQ群里遇到大神的指點才綁定成功的,對于iOS的微信綁定來說,只要Bundle ID與微信開放平臺申請的AppID 能對應(yīng)起來就OK了。
同樣的先添加一個iOS的Bindings Library,根據(jù)官方文檔,安裝了sharpie 還有xcode command line,接下來就是把下載下來的微信SDK for iOS用sharpie來轉(zhuǎn)換一下:
1 | sharpie bind -output=iOS.WechatBinding - namespace =iOS.WechatBinding -sdk=iphoneos10.1 [絕對路徑]/OpenSDK1.7.5/*.h |
執(zhí)行完成會提示有兩個錯誤,但是照樣會生成ApiDefinitions.cs跟StructsAndEnums.cs兩個文件,根據(jù)官方文檔,將兩個文件中的內(nèi)容分別復(fù)制黏貼到Bindings Library下的ApiDefinition.cs以及Structs.cs文件中,并且將libWeChatSDK.a添加到Native References中。
編譯后會報出一堆錯誤,這些錯誤其實是起到一個提示的作用,讓程序員驗證一下sharpie的轉(zhuǎn)換是不是正確,這里我將[Verify(************)]全部注釋掉,也可以刪掉,再次編譯通過。
在iOS接入微信的sdk中會發(fā)現(xiàn)這樣一段話:開發(fā)者需要在工程中鏈接上:SystemConfiguration.framework, libz.dylib, libsqlite3.0.dylib, libc++.dylib, Security.framework, CoreTelephony.framework, CFNetwork.framework。在這里需要編輯一下引入的libWeChatSDK.a的屬性,Native References下的libWeChatSDK,右鍵屬性,配置如下:
配置完成后,綁定工作算是大功告成了,可以繼續(xù)后面的工作了。
歡迎大家指正。