react-native——微信登陆、分享、支付

-------android篇java

推荐使用react-native-wechat库,githup地址:github.com/yorkie/reac… 登陆,分享,收藏(v1.9.9+) 和支付的功能,适合iOS/Android 双平台使用。

1.首先你须要一个微信开发者的帐号,而且已认证。
微信开发平台去注册帐号而且建立一个移动应用。(地址:open.weixin.qq.com),
注意:在你建立移动应用的时候,Android应用下方的签名须要与你测试的app一致,若是你不知道。能够在微信开发官网上下载签名生成工具来查看app的签名。 node

在你的模拟器或者真机上安装下载签名工具以后,打开在搜索栏里面搜索你app的包名就能够查看签名啦!
2.安装配置react-native-wechat

// npm安装

npm install react-native-wechat --save

// yarn 安装

yarn add react-native-wechat
复制代码

Android配置
在android/settings.gradle文件下添加如下代码:react

include ':RCTWeChat'
project(':RCTWeChat').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-wechat/android')
复制代码

在android/app/build.gradle的dependencies部分添加如下代码:android

compile project(':RCTWeChat')   
复制代码

在MainActivity.java或者MainApplication.java文件中添加如下代码:git

import com.theweflex.react.WeChatPackage;

@Override
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
   ...
    new WeChatPackage()       
  );
}
复制代码

建立名为'wxapi'的文件夹,并在文件夹内建立WXEntryActivity.java,用于得到微信的受权和分享权限。github

WXEntryActivity.java代码:

package (这里是你的包名).wxapi;
import android.app.Activity;
import android.os.Bundle;
import com.theweflex.react.WeChatModule;

public class WXEntryActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WeChatModule.handleIntent(getIntent());
    finish();
  }
}
复制代码

在该文件夹内建立 WXPayEntryActivity.java文件,用于微信支付npm

WXPayEntryActivity.java代码

package (这里是你的包名).wxapi;
import android.app.Activity;
import android.os.Bundle;
import com.theweflex.react.WeChatModule;

public class WXPayEntryActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WeChatModule.handleIntent(getIntent());
    finish();
  }
}
复制代码

在AndroidManifest.xml添加react-native

<manifest>
  <application>
    <activity
      android:name=".wxapi.WXEntryActivity"
      android:label="@string/app_name"
      android:exported="true"
    />
    <activity
      android:name=".wxapi.WXPayEntryActivity"
      android:label="@string/app_name"
      android:exported="true"
    />
  </application>
</manifest>
复制代码

在proguard-rules.pro中添加:api

-keep class com.tencent.mm.sdk.** {
  *;
}
复制代码

配置完成,能够运行项目调用api来测试啦!!
APIbash

registerApp(appid) :注册APP
registerAppWithDescription(appid, appdesc) : 注册APP(仅支持iOS)
isWXAppInstalled() :检查微信是否安装
isWXAppSupportApi()
getApiVersion() :得到微信SDK的版本
openWXApp() :打开微信APP
sendAuthRequest([scope[, state]]) :发送微信登陆受权
shareToTimeline(data) : 分享到朋友圈
shareToSession(data) :分享到朋友
pay(data) :调用微信支付
addListener(eventType, listener[, context]) :监听状态
once(eventType, listener[, context]) :监听状态
removeAllListeners() :移除全部监听
复制代码

有可能会遇到的问题
在开发环境中运行正常,可是在打包的时候会有这个错误

这个错误本来不是rn版本的问题,缘由是RN将Android SDK的版本更新了,这与大多第三方使用了原生代码的插件不兼容了,由于第三方更新不及时,SDK仍是旧的版本。
这个时候须要找到文件: node_modules / react-native-wechat / android / build.gradle 并打开,
而后再打开项目根目录下面的 android / build.gradle 或者 android / app / build.gradle。
修改react-native-wechat下面的build.gradle文件中的这几处地方
上面那一处须要 对比刚刚打开的另外一个build.gradle文件的参数来改。
下面那一处须要 把 compile 改成 implementation。

而后从新打包便可!!!
第一次发,文章格式有点乱,请谅解!

相关文章
相关标签/搜索