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


從開始做這一塊的工作開始,就開始找各種的資料,最后還是老老實實的去看官方文檔。

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

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

另外,我在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會有問題,調用分享功能的時候,程序會出現沒有響應的情況。

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

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

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中。

編譯后會報出一堆錯誤,這些錯誤其實是起到一個提示的作用,讓程序員驗證一下sharpie的轉換是不是正確,這里我將[Verify(************)]全部注釋掉,也可以刪掉,再次編譯通過。

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

配置完成后,綁定工作算是大功告成了,可以繼續后面的工作了。

歡迎大家指正。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM