React Native双平台分享功能,一行代码,双平台分享。源码已开源到Github:react-native-share
目前支持分享的平台有【QQ】【QQ空间】【微信】【朋友圈】【微博】【FaceBook】 欢迎大家star,fork.....
【Android平台配置】
1. app目录下创建libs文件夹,添加依赖文件【直接复制源码中libs目录即可】
2.app / src / main 目录下创建jniLibs目录,添加JNI文件【直接复制源码中jniLibs目录即可】
3. 包名目录下,添加Activity回调【直接复制源码中apshare、wxapi、WBShareActivity即可】
4. 在AndroidMainfest.xml文件下添加权限【直接复制源码即可】
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
5. 在AndroidMainfest.xml文件下的 <application></application>中添加分享平台【直接复制源码即可】
<activity android:name=".WBShareActivity" android:configChanges="keyboardHidden|orientation" android:screenOrientation="portrait" > <intent-filter> <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <activity android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser" android:configChanges="keyboardHidden|orientation" android:windowSoftInputMode="adjustResize" android:exported="false" > </activity> <serviceandroid:name="com.sina.weibo.sdk.net.DownloadService" android:exported="false"></service> <activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <activity android:name="com.tencent.tauth.AuthActivity" android:launchMode="singleTask" android:noHistory="true" > <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="tencent100424468" /> <= 改为自己申请的QQkey </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="orientation|keyboardHidden|screenSize"/> <activity android:name=".apshare.ShareEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <Meta-data android:name="UMENG_APPKEY" android:value="561cae6ae0f55abd990035bf" > <= 改为自己申请的友盟Key </Meta-data>
6. 使用【keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000】生成签名文件,并将签名文件放入app目录
7. 在gradle.properties文件下,添加签名信息【直接复制源码即可】
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore MYAPP_RELEASE_KEY_ALIAS=my-key-alias MYAPP_RELEASE_STORE_PASSWORD=123456(填写自己设置的密码) MYAPP_RELEASE_KEY_PASSWORD=123456(填写自己设置的密码)
8. 在app / build.gradle 文件下的添加签名配置【直接复制源码即可】
android{ ... defaultConfig{ ... } signingConfigs{ release{ storeFilefile(MYAPP_RELEASE_STORE_FILE) storePasswordMYAPP_RELEASE_STORE_PASSWORD keyAliasMYAPP_RELEASE_KEY_ALIAS keyPasswordMYAPP_RELEASE_KEY_PASSWORD } } buildTypes{ release{ ... signingConfigsigningConfigs.release } } }
9. 在MainApplication中初始化分享【直接复制源码即可】
@Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( new MainReactPackage(),new SharePackage() <= 添加引用 ); }
@Override public void onCreate() { super.onCreate(); SoLoader.init(this,false); Config.shareType = "react native"; UMShareAPI.get(this); } // 配置平台 { PlatformConfig.setWeixin("wx083bf496cbc48aec","750e9075fa521c82274a9d548c399825"); PlatformConfig.setQQZone("1106207359","3JjbG8aXMuh5w0sV"); PlatformConfig.setSinaWeibo("2733400964","fac50980a44e3e3afd4bc968ea572887","www.baidu.com"); }
10. 在MainActivity中初始化分享回调【直接复制源码即可】
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ShareModule.initActivity(this); } @Override public void onActivityResult(int requestCode,int resultCode,Intent data) { super.onActivityResult(requestCode,resultCode,data); UMShareAPI.get(this).onActivityResult(requestCode,data); }
【IOS平台配置】
【分享】
import UShare from './share/share'; import SharePlatform from './share/SharePlatform';
/** * 参数说明: * 1. 标题 * 2. 内容 * 3. 跳转链接 * 4. 图片链接 * 5. 分享平台 * 6. 分享结果回调 */ UShare.share('标题','内容','http://baidu.com','http://dev.umeng.com/images/tab2_1.png',SharePlatform.QQ,(code,message) => { // 分享成功:code=200 // ToastAndroid.show(message,ToastAndroid.SHORT); });原文链接:https://www.f2er.com/react/303549.html