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。

而後從新打包便可!!!
第一次發,文章格式有點亂,請諒解!

相關文章
相關標籤/搜索