Xamarin綁定微信SDK 實現分享功能

從開始作這一塊的工做開始,就開始找各類的資料,最後仍是老老實實的去看官方文檔。c++

對於Xamarin.Android的綁定屬於純jar的綁定,這個難度較小,添加Bindings Library,將libammsdk.jar添加到指定的文件夾中編譯,不出意外的會報出兩個錯誤,解決辦法是:雙擊錯誤提示到相應的文件,而後找到錯誤提示中提到的類的定義,類定義的上面有路徑,拷貝到Transforms文件夾下的Metadata.xml文件中,以下圖所示,這樣就ok了,編譯經過程序員

在調用的微信API的過程當中,要求在微信申請的AppID與應用的包名以及應用簽名要徹底對應起來,有一個沒有對應起來,在調用的時候會出現調用微信閃退的狀況。sql

另外,我在App中用的是微信的網頁連接分享功能,在獲取圖片的byte數組的時候用的是下面幾行代碼數組

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對應的資源要在每一個drawable文件夾裏都放一份icon,否則的話獲取的bitmapData會有問題,調用分享功能的時候,程序會出現沒有響應的狀況。xcode

下面來講一下Xamarin.iOS的綁定,這個相對來講比較麻煩,也是在QQ羣裏遇到大神的指點才綁定成功的,對於iOS的微信綁定來講,只要Bundle ID與微信開放平臺申請的AppID 能對應起來就OK了。微信

一樣的先添加一個iOS的Bindings Library,根據官方文檔,安裝了sharpie 還有xcode command line,接下來就是把下載下來的微信SDK for iOS用sharpie來轉換一下:iphone

sharpie bind -output=iOS.WechatBinding -namespace=iOS.WechatBinding -sdk=iphoneos10.1 [絕對路徑]/OpenSDK1.7.5/*.h

執行完成會提示有兩個錯誤,可是照樣會生成ApiDefinitions.cs跟StructsAndEnums.cs兩個文件,根據官方文檔,將兩個文件中的內容分別複製黏貼到Bindings Library下的ApiDefinition.cs以及Structs.cs文件中,而且將libWeChatSDK.a添加到Native References中。spa

編譯後會報出一堆錯誤,這些錯誤實際上是起到一個提示的做用,讓程序員驗證一下sharpie的轉換是否是正確,這裏我將[Verify(************)]所有註釋掉,也能夠刪掉,再次編譯經過。code

在iOS接入微信的sdk中會發現這樣一段話:開發者須要在工程中連接上:SystemConfiguration.framework, libz.dylib, libsqlite3.0.dylib, libc++.dylib, Security.framework, CoreTelephony.framework, CFNetwork.framework。在這裏須要編輯一下引入的libWeChatSDK.a的屬性,Native References下的libWeChatSDK,右鍵屬性,配置以下:orm

配置完成後,綁定工做算是大功告成了,能夠繼續後面的工做了。

歡迎你們指正。

相關文章
相關標籤/搜索