react-native-isz-share

1.0.1 • Public • Published

react-native-isz-share 爱上租插件

实现功能

  • 分享

微信好友及朋友圈分享,qq好友及空间分享,微博分享

  • 登录

微信登录,qq登录,微博登录

  • 支付

微信支付,阿里支付

安装

npm install react-native-isz-share  
yarn add  react-native-isz-share 

自动link

react-native link react-native-isz-share

手动link

  • Android

Application文件 getPackages增加new IShangZuSmartPackage()

 @Override
        protected List<ReactPackage> getPackages() {
            return Arrays.<ReactPackage>asList(
                    new MainReactPackage(),
                    new ISZSharePayPackage()
            );
        }

app下build.gradle添加依赖

compile project(':react-native-isz-share')

settings.gradle文件添加

include ':react-native-isz-share'
project(':react-native-isz-share').projectDir = new File(settingsDir, '../../android')

ios

进入ios目录,在podfile文件加入:
  pod 'react-native-isz-share', :path => '../node_modules/react-native-isz-share'
执行:
  pod install

配置

Android

项目app build 文件配置

        manifestPlaceholders = [
                "QQ_APPID"    : "申请的app-id",
                "WEIBO_APPKEY": "申请的key",
                "WECHAT_APPID": "申请的appid",
                "WECHAT_SECRET": "申请的WECHAT_SECRET",
        ]

项目gradle文件

//微博sdk仓库
 maven { url "https://dl.bintray.com/thelasterstar/maven/" }

使用微信相关

在项目包名下创建包wxapi,并在其中创建如下Activity,(不创建无法使用该功能)

//使用分享登录时创建
public class WXEntryActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        WeChatApiModule.handleIntent(getIntent());
        finish();
    }
}

//使用支付时创建
public class WXPayEntryActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        WeChatApiModule.handleIntent(getIntent());
        finish();
    }
}


//将上面Activity在AndroidManifest.xml文件注册。
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:exported="true"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
        <activity
            android:name=".wxapi.WXPayEntryActivity"
            android:exported="true"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />

IOS

API使用

引入

import {LoginApi, PayApi, ShareApi} from 'react-native-isz-share'

说明

下面展示使用所有接口使用Promise写法,登录接口统一返回 ,如下uid是openid,gender性别,name登录第三方账号名字,iconUrl是头像。

{
    "uid":"2414135401",
    "gender":"男",
    "name":"Code4Android",
    "msg":"登录成功",
    "iconUrl":"http://tva1.sinaimg.cn/crop.0.0.180.180.50/8fe4c869jw1e8qgp5bmzyj2050050aa8.jpg",
    "errCode":0,
    "type":"WeiBoLoginRes"
}

登录Api

  • 微信登录
/**
 * 微信登录
 * @method WeChat
 * @param {Object} data
 * @param {String} data.scopes - 字符串.应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地 非必填
 * @param {String} data.state - 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节,该值会被微信原样返回,我们可以将其进行比对,防止别人的攻击.  非必填
 */
      LoginApi.loginWithWeChat().then((message) => console.log(message)).catch(err => {
            console.log(err)
        });


  • QQ登录

参数:

/**
 * QQ登录
 * @method loginWithQQ
 * @param {Object} data
 * @param {String} data.scopes - 字符串.应用授权作用域,非必填
 */
        LoginApi.loginWithQQ()
            .then(message => {
                console.log( message)
            }).catch(err => {
            console.log( err)
        })
  • 微博登录
        LoginApi.loginWithWeiBo()
            .then(message => {
                console.log(message)
            }).catch(err => {
            console.log(err)
        })

分享API

数据

        let shareMessage = {
            type: "news",
            title: "我是测试标题",
            content: "我是测试内容",
            url: 'http://baidu.com',
            imageUrl: 'http://dev.umeng.com/images/tab2_1.png',
        };
  • 微博分享
/**
 * 分享消息到微博
 * @method shareToWeiBo
 * @param {Object} data
 * @param {String} data.title - 分享标题.
 * @param {String} data.content - 分享内容.
 * @param {String} data.type - 分享类型,默认是分享成文本 {news(新闻网页形式)|text(文本)|image(图片)}
 * @param {String} data.url - 分享的网页
 * @param {String} data.imageUrl - 分享的图片链接.
 * @param {String} data.imagePath - 分享的图片本地路径.(imageUrl和此字段都传时优先使用此字段)
 */
 ShareApi.shareToWeiBo(shareMessage).then(message => {
                console.log(message);
            }).catch(err => {
                 console.log(err);
            })
  • QQ分享

//分享到好友

/**
 * 分享消息到QQ好友
 * @method shareToQQ
 * @param {Object} data
 * @param {String} data.title - 分享标题.
 * @param {String} data.content - 分享内容.
 * @param {String} data.type - 分享类型,默认是分享成文本 {news(新闻网页形式)|text(文本)|image(图片)}
 * @param {String} data.url - 分享的网页
 * @param {String} data.imageUrl - 分享的图片链接.
 * @param {String} data.imagePath - 分享的图片本地路径.(分享本地图片必须使用此字段,否则无法分享)
 */
  ShareApi.shareToQQ(shareMessage).then((message) => this.show("成功" + message))
                .catch(err => this.show("失败" + err))
//分享到空间

/**
 * 分享消息到QQ空间
 * @method shareToQZone
 * @param {Object} data
 * @param {String} data.title - 分享标题.
 * @param {String} data.content - 分享内容.
 * @param {String} data.type - 分享类型,默认是分享成文本 {news(新闻网页形式)|text(文本)|image(图片)}
 * @param {String} data.url - 分享的网页
 * @param {String} data.imageUrl - 分享的图片链接.
 * @param {String} data.imagePath - 分享的图片本地路径.(分享本地图片必须使用此字段,否则无法分享)
 */
 ShareApi.shareToQZone(shareMessage).then((message) => this.show("成功" + message))
                .catch(err => this.show("失败" + err))
  • 微信分享
//分享到好友
/**
 * 分享消息到微信好友
 * @method shareToWeChatSession
 * @param {Object} data
 * @param {String} data.title - 分享标题. 非必填
 * @param {String} data.content - 分享内容. 非必填
 * @param {String} data.type - 分享类型,默认是分享成文本 {news(新闻网页形式)|text(文本)|image(图片)}
 * @param {String} data.url - 分享的网页 非必填
 * @param {String} data.imageUrl - 分享的图片链接.
 * @param {String} data.imagePath - 分享的图片本地路径.(imageUrl和此字段都传时优先使用此字段)
 */
 ShareApi.shareToWeChatSession(shareMessage).then(message => {
                console.log(message);
            }).catch(err => {
                console.log(err);
            });
//分享到朋友圈

/**
 * 分享消息到微信朋友圈
 * @method shareToWeChatTimeline
 * @param {Object} data
 * @param {String} data.title - 分享标题.
 * @param {String} data.content - 分享内容.
 * @param {String} data.type - 分享类型,默认是分享成文本 {news(新闻网页形式 此时url必填)|text(文本)|image(图片 此时imageUrl必填)}
 * @param {String} data.url - 分享的网页
 * @param {String} data.imageUrl - 分享的图片链接.
 * @param {String} data.imagePath - 分享的图片本地路径.(imageUrl和此字段都传时优先使用此字段)
 */
  ShareApi.shareToWeChatTimeline(shareMessage).then(message => {
                console.log(message);
            }).catch(err => {
                console.log(err);
            });

支付API

  • 微信支付
/**
 * 微信支付
 * @method payWithWeChat
 * @param {Object} data
 * @param {String} data.appId -微信appid   必填
 * @param {String} data.partnerId -商户号   必填
 * @param {String} data.prepayId -预支付交易会话ID 必填
 * @param {String} data.sign -  签名  必填
 * @param {String} data.nonceStr -随机字符串  非必填
 * @param {String} data.timeStamp - 时间戳 非必填
 */
      PayApi.payWithWeChat({prepayId: '1111', partnerId: '4325435', sign: "wgtrfsdnjknjghuyry8"}).then(message => {
            console.log(message)
        }).catch(err => {
            console.log(err)
        })
  • 支付宝
/**
 * 支付宝支付
 * @method AliPay
 * @param {Object} data
 * @param {String} data.amount -支付金额   必填
 * @param {String} data.privateKey -私钥 必填
 * @param {String} data.pid -  商户id  必填
 * @param {String} data.orderNo -  订单编号  必填
 * @param {String} data.body -商品详情信息,支付时提醒  非必填,默认显示订单号
 * @param {String} data.account - 支付宝收款账户id。 非必填,默认为商户签约账号对应的支付宝用户ID
 * @param {String} data.notify_url - 支付宝服务器主动通知商户服务器里指定的页面http/https路径。 非必填
 * @param {String} data.timeout_express - 订单过期时间,取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天 非必填,默认30m
 */
 
 PayApi.payWithAli({})

Readme

Keywords

Package Sidebar

Install

npm i react-native-isz-share

Weekly Downloads

0

Version

1.0.1

License

ISC

Unpacked Size

14.4 MB

Total Files

107

Last publish

Collaborators

  • code4android