Open felix-cao opened 5 years ago
我们平时运行项目使用的是debug模式,使用命令在(stodio中的terminal, keytool -v -list -keystore 签名文件路径)中,生成的也是debug模式下的签名文件
因为我们的分享需要在开发平台注册MD5的签名,但是我们的微信开发平台的配置的MD5的签名是release(正式包)的签名
:
,我这里的错误就是这个原因导致的:
FE:DE:FE:00:C6:53:46:05:71:2E:9A:71:55:06:66:97
实际上应该填写:fedefe00c6534605712e9a7155066697
总结:由于这个原因,导致签名文件不一致(一个正式,一个测试),导致微信的分享不能正常吊起来,这是比较正常的原因
解决:在 Android/app/build.gradle
中进行配置,配置同样的签名文件地址,UmengTool.getSignature(this)
(可以打印签名,和用微信工具生成的签名是一样的)
signingConfigs {
debug {
keyAlias 'smart_jishou'
keyPassword '123456'
storeFile file('../keystores/smart_jishou.jks')
storePassword '123456'
}
release {
keyAlias 'smart_jishou'
keyPassword '123456'
storeFile file('../keystores/smart_jishou.jks')
storePassword '123456'
}
}
buildTypes {
debug {
minifyEnabled false
signingConfig signingConfigs.debug
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
release {
minifyEnabled false
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
请参考 [SA10221]SDK调试日志
再你的包目录下创建 wxapi
文件夹, 再创建 WXEntryActivity.java
输入如下代码:
package com.smart_jishou.wxapi;
import com.umeng.socialize.weixin.view.WXCallbackActivity;
public class WXEntryActivity extends WXCallbackActivity {
}
往上拉,可以看到 本次打包的签名
最后卸载了微信和你自己的APP, 重新装一遍,就可以了。
Android studio 下又个 logcat:
一、下载友盟 SDK
本文的目的是实现如下图所示的分享效果:
打开 友盟 SDK React Native 资源, 下载“社会化分享 SDK”,在旁边的"设置"中选择自己要集成的第三方平台, 如下图:
解压后文件目录如下:
二、项目准备
假设你已经有了
React Native
的开发环境,若没有,请移步 《 React Native入门 --- Expo 构建 React Native APP》。由于网络原因若无法使用expo
可直接使用npm install -g react-native-cli
初始化项目
初始化项目,然后再模拟器上跑一把确保跑的通
如果使用了
expo
初始化后,需要expo eject
命令分离出android
原生代码。三、开始集成
3.1、将
.jar
包放入libs
在
/just-eat/android/app
下创建libs
文件夹,然后把从友盟下载的下列文件放置新创建的libs
文件夹Android/common/common_android_1.5.4/normal
umeng-common-1.5.4.jar
Android/share/share_android_6.9.4/main/libs
umeng-share-core-6.9.4.jar
umeng-sharetool-6.9.4.jar
Android/share/share_android_6.9.4/shareboard/libs
umeng-shareboard-widget-6.9.0.jar
Android/share/share_android_6.9.4/platforms/dingding/libs
libddshare.jar
umeng-share-Ding-6.9.4.jar
Android/share/share_android_6.9.4/platforms/QQ精简版/libs
umeng-share-QQ-simplify-6.9.4.jar
Android/share/share_android_6.9.4/platforms/微信精简版/libs
umeng-share-wechat-simplify-6.9.4.jar
Android/share/share_android_6.9.4/platforms/新浪精简版/libs
umeng-share-sina-simplify-6.9.4.jar
3.2、将三个
.java
放入module
文件夹在
just-eat/android/app/src/main/java/com/just-eat/ 文件夹下创建
module,并将下列文件放置新创建的
module` 文件夹ReactNative/common/common_reactnative_1.0.0/common_android
DplusReactPackage.java
RNUMConfigure.java
ReactNative/share/share_reactnative_1.0.0/share_android
ShareModule.java
分别打开上面的三个
.java
文件,将第一行的改为
我们顺便改了一下:
DplusReactPackage.java
3.3、
res
下的所有文件和文件夹复制
res
下的所有文件和文件夹放入android
工程目录下, 即android\app\src\main\res
。3.4、修改
MainApplication.java
和MainActivity.java
MainApplication.java
和MainActivity.java
这两个文件是我们项目中Android
原生提供的。分别在这两个文件中引入 3.2 中的.java
文件3.4.1、在
MainApplication.java
,里面需要添加DplusReactPackage
和RNUMConfigure
3.4.2、在
MainActivity.java
引入ShareModule
3.5 配置 AndroidManifest.xml
因为分享需要用到一些权限、Activity、Appkey及相关第三方key的配置,所以需要在AndroidManifest.xml文件中添加如下的代码:
在
application
段加入以下代码四、使用分享模块
在
just-eat
根目录下创建src/share
,将 SDK 中的ReactNative\common\common_reactnative_1.0.0\js\ShareUtil.js
放入到share
中。在
App.js
中使用:这里的
shareboard
函数可以参考文档 分享面板函数。封装授权码
我这里改造了一下,目的是封装授权码, 创建
src/util
文件夹,创建share.js
文件,输入如下代码最后跑一把试试吧
Reference