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/
我會經常跟新我的博客和他家分享一些我在開發中遇到的解決方法,希望大家多多關註。主要是針對一些新手,大神在此可以越過,不喜勿噴。
---恢復內容結束---
Xamarin.Form怎麽調用原生方法