Xamarin.Form怎么調用原生方法


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

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/

 

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

 

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


免責聲明!

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



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