1. 程式人生 > >Xamarin.Form怎麽調用原生方法

Xamarin.Form怎麽調用原生方法

作用 family nsf roi 分享圖片 兩個 命名 mic 包含

---恢復內容開始---

Xamarin.Form怎麽調用原生包

今天我想和大家分享的是有關Xamarin如何調用安卓的原生代碼,下面的例子以大家可能會經常用到的微信WX方法的調用。

首先我們新建一個Xamarin.Android工程。

Xamarin.Form怎麽調用原生包

今天我想和大家分享的是有關Xamarin如何調用安卓的原生代碼,下面的例子以大家可能會經常用到的微信WX方法的調用。

首先我們新建一個Xamarin.Android工程。

技術分享圖片技術分享圖片

技術分享圖片技術分享圖片

這兩個都是可以的,上次我們說到有關Xamarin.Form其實就是包含了Xamarin.Android這個工程。我在這裏就創建了第一種方式,畢竟我要想著工程以後還要考慮到IOS的編寫。

首先我們去官網下載WX的JAR包。https://mp.weixin.qq.com/

下載完之後,把你需要的JAR加載到你的項目中來。

首先單擊右鍵你的解決方案→添加→新建項目,然後添加Android綁定庫,如圖:

技術分享圖片技術分享圖片

創建完成後,開打TestAndroid這個工程,裏面有個JARS,單擊右鍵→添加→現有項→然後選擇你在微信官網下的文件找到一個以JAR結尾的文件添加進來就好了

技術分享圖片技術分享圖片

添加進來之後,將TestAndroid工程重新編譯,正常情況下應該是有兩個錯誤和N個警告,警告不用去管他,這兩個錯誤截圖如下:

技術分享圖片技術分享圖片

一般情況下引用進來的JAR文件都是會有很多命名沖突的錯誤,這裏也不例外,有兩個,然後我們把這兩個命名換個名稱就好了。

方法一:

在這裏我們有兩中方式可以解決,一個是直接點擊到錯誤的地方直接更改,這個確實簡單粗暴,很快就可以搞好,例如改一個如下:

技術分享圖片技術分享圖片

我在這裏把MediaObject直接改成MediaObject1,錯誤就消失了。

但是用這種方法有一個缺點,就是你在重新生成TestAndroid或者整個解決方案的時候會回到原點,又會出現這兩個錯誤。

方法二:

技術分享圖片技術分享圖片

打開TestAndroid綁定庫中的Transforms,找到Metadata.xml並打開。

技術分享圖片技術分享圖片

將選中的這段代碼粘貼上去<attr path="/api/package[@name=‘com.tencent.mm.opensdk.modelmsg‘]/class[@name=‘WXMediaMessage‘]/field[@name=‘mediaObject‘]"

name="managedName">MyMediaObject</attr>

<attr path="/api/package[@name=‘com.tencent.mm.opensdk.modelbase‘]/class[@name=‘BaseResp‘]/field[@name=‘errCode‘]"

name="managedName">MyErrCode</attr>

這裏的作用其實和方法一功能一樣,將MediaObject和ErrCode重命名成自己想要的,這種方法有點就是將命名沖突的全都放在一個地方來進行處理。並且在你重新生成TestAndroid或者整個解決方案時,不會在報錯了。

解釋一下path="/api/package[@name=‘com.tencent.mm.opensdk.modelmsg‘]/class[@name=‘WXMediaMessage‘]/field[@name=‘mediaObject‘]"

這裏其實就是你報錯地方上面

// Metadata.xml XPath field reference: path="/api/package[@name=‘com.tencent.mm.opensdk.modelbase‘]/class[@name=‘BaseResp‘]/field[@name=‘errCode‘]"

也就是你需要修改路徑。

技術分享圖片技術分享圖片

好了以上都已經修改好了,我們現在就開始準備調用把。

首先我們來說一下怎麽在Xamrin.android這個項目中調用,在下一次我將講述如何在Xamarin.From中共用代碼來調用。

我們可以將以下三個畢竟常用的引用到我們需要調用WX方法的MainActivity中。

using Com.Tencent.MM.Opensdk.Openapi;

using Com.Tencent.MM.Opensdk.Modelbase;

using Com.Tencent.MM.Opensdk.Modelmsg;

技術分享圖片技術分享圖片

然後就開始調用把

技術分享圖片技術分享圖片

IWXAPI這個就是剛剛JAR中的方法了,好了,今天我們就說到這裏了,如果不知道IWXAPI怎麽調用,可以去微信的官網查看https://mp.weixin.qq.com/

我會經常跟新我的博客和他家分享一些我在開發中遇到的解決方法,希望大家多多關註。主要是針對一些新手,大神在此可以越過,不喜勿噴。

---恢復內容結束---

Xamarin.Form怎麽調用原生方法