---恢复内容开始---

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怎么调用原生方法的更多相关文章

  1. ReactNative-JS 调用原生方法实例代码(转载)

    第一步首先创建ReactNative 模块类继承ReactContextBaseJavaModule package com.mixture;   import android.content.Con ...

  2. 简单实现RN调用原生方法(IOS)

    在React Native中,一个“原生模块”就是一个实现了“RCTBridgeModule”协议的Objective-C类(个人理解RCTBridgeModule就是react与native之间的桥 ...

  3. 通过js调用android原生方法

    有时候我们有这样一个需求,监听html中控件的一些事件.例如点击html中某个按钮,跳转到别的activity,复制某段文本. 首先是对webview的设置: myWebView = (WebView ...

  4. uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式

    前言: 关于H5的调用Android原生方法的方式有很多,在该片文章中我主要简单介绍三种与Android原生方法交互的方式. 一.H5+方法调用android原生方法 H5+ Android开发规范官 ...

  5. 【React Native】在原生和React Native间通信(RN调用原生)

    一.从React Native中调用原生方法(原生模块) 原生模块是JS中也可以使用的Objective-C类.一般来说这样的每一个模块的实例都是在每一次通过JS bridge通信时创建的.他们可以导 ...

  6. java高级用法之:调用本地方法的利器JNA

    目录 简介 JNA初探 JNA加载native lib的流程 本地方法中的结构体参数 总结 简介 JAVA是可以调用本地方法的,官方提供的调用方式叫做JNI,全称叫做java native inter ...

  7. angularjs 动态表单, 原生事件中调用angular方法

    1. 原生事件中调用angular方法, 比如 input的onChange事件想调用angular里面定义的方法 - onChange="angular.element(this).sco ...

  8. javacpp-opencv图像处理3:使用opencv原生方法遍历摄像头设备及调用(增加实时帧率计算方法)

    javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置.大小.粗度.翻转.平滑等操作 javaCV图像处理之2:实时视频添加图片水 ...

  9. react native 调用Android原生方法

    来源:https://www.youtube.com/watch?v=WmJpHHmOKM8 教程:https://www.youtube.com/watch?v=GiUo88TGebs Breaki ...

随机推荐

  1. 虚拟机中的linux系统文件突然全部变成只读的问题

    当宿主系统和虚拟机的IO都比较繁忙时,虚拟机的IO请求得不到及时的响应.虚拟机Linux不知道自己运行在虚拟机里面,会认为是磁盘IO错误,为了保护磁盘数据会remount分区为只读. 这时候如果只是对 ...

  2. Axure原型设计工具介绍

    Axure原型设计工具介绍 1759230茅杭斌 目录 1.前言 2.下载与激活 3. Axure相关功能介绍 4.Axure案例演示 5.结语 一.前言 在我们进行程序开发的时候,原型图是必不可少的 ...

  3. json相关安全问题

    前言: 最近经常遇到json的事情,由于不懂所以系统的学习一下,记录此贴. 00x1: JSON是啥?Java Objiect Notaton 谷歌翻译过来就是JS对象标记,是一种轻量级的数据交换格式 ...

  4. http中的filter拦截servlet之后获取body,字符流关闭,无法继续传入控制器

    https://blog.csdn.net/pyxly1314/article/details/51802652

  5. java锁

    ---恢复内容开始--- synchronized 互斥锁 synchronized(this) 当前类的所有synchronized(this) 都被锁了,还有synchronized static ...

  6. 逆向工程vgenerator(一)

    前言 想要自己实现一个mybatis-generator类似的轮子,目前只实现MySQL部分的方法.利用下班时间,写了一个小项目,实现了这个功能.我准备分成三篇博客来写这个东西. 基类 /** *基类 ...

  7. C#;DataTable添加列;DataTable转List泛型集合;List泛型集合转DataTable泛型集合;

    给DataTable添加列 string sql = "select * from cgpmb order by code"; DataTable dt = Bobole.Data ...

  8. java反射应用

    package cn.sxt.TestClass; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetE ...

  9. matlab-霍夫变换详解(判断正方形长方形)

    霍夫变换 霍夫变换是1972年提出来的,最开始就是用来在图像中过检测直线,后来扩展能检测圆.曲线等. 直线的霍夫变换就是 把xy空间的直线 换成成 另一空间的点.就是直线和点的互换. 我们在初中数学中 ...

  10. orcal - 伪列

    数据伪劣 行号 ROWNUM SELECT ROWNUM, empno,ename,sal from emp; 取出第一行数据 SELECT ROWNUM, empno,ename,sal from ...