微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

React Native第三方平台分享Android,IOS双平台


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回调【直接复制源码中apsharewxapiWBShareActivity即可】

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.jb51.cc/react/303549.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐