HADB / react-native-umeng-share

Umeng share component for React Native

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#react-native-umeng-share

目前支持分享到:微信好友、微信朋友圈、微信收藏、QQ、QQ空间、微博、邮件、短信

##安装 npm install --save react-native-umeng-share@https://github.com/HADB/react-native-umeng-share.git

##手动添加到XCode

  • 在XCode project navigator 中右键单击 Libraries -> Add Files to [你的项目名称] 进入 node_module/react-native-umeng-share/ios 将 .xcodeproj 文件添加进来,并点击[你的项目名称] -> Build Phases 添加 Link Binary libRCTUmengshare.a

  • TARGETS->BUILD SETTING->Framework Search Paths 添加 $(SRCROOT)/../node_modules/react-native-umeng-share/ios/RCTUmengShare/UmengSocial/UMSocial_Sdk_Extra_Frameworks/TencentOpenAPI

  • Appdelegate.m中添加如下代码

    ...
    #import "RCTUmengShare.h"
    ...
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
        UIViewController *rootViewController = [UIViewController new];
        rootViewController.view = rootView;
        self.window.rootViewController = rootViewController;
        [self.window makeKeyAndVisible];
        [RCTUmengShare setRootController:rootViewController]; //加入这行代码
    }
  • 在XCode project navigator 中右键单击 [你的项目名称] ->Add Files to [你的项目名称]添加第三方分享的依赖文件

    平台名称 文件路径
    微信 node_module/react-native-umeng-share/ios/RCTUumengShare/UmengSocial/UMSocial_Sdk_Extra_Frameworks/Wechat/libSocialWechat.a 和 libWeChatSDK.a
    微博 node_module/react-native-umeng-share/ios/RCTUumengShare/UmengSocial/UMSocial_Sdk_Extra_Frameworks/SinaSSO/libSocialSinaSSO.a libWeiboSDK.a 和 WeiboSDK.bundle
    QQ node_module/react-native-umeng-share/ios/RCTUumengShare/UmengSocial/UMSocial_Sdk_Extra_Frameworks/TencentOpenAPI/libSocialQQ.a TencentOpenApi_IOS_Bundle.bundle 和 TencentOpenAPI.framework
  • 配置info.plist

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
        <dict>
            ...
            <key>CFBundleURLTypes</key>
            <array>
                <dict>
                    <key>CFBundleURLName</key>
                    <string>weixin</string>
                    <key>CFBundleURLSchemes</key>
                    <array>
                        <string>你的微信appId</string>
                    </array>
                </dict>
                <dict>
                    <key>CFBundleTypeRole</key>
                    <string>Editor</string>
                    <key>CFBundleURLSchemes</key>
                    <array>
                        <string>eqianzhuang</string>
                    </array>
                </dict>
                <dict>
                    <key>CFBundleTypeRole</key>
                    <string>Editor</string>
                    <key>CFBundleURLSchemes</key>
                    <array>
                        <string>tencent'你的qq APPid'</string>
                    </array>
                </dict>
                <dict>
                    <key>CFBundleTypeRole</key>
                    <string>Editor</string>
                    <key>CFBundleURLSchemes</key>
                    <array>
                        <string>sina.54535988fd98c5f10000726d</string>
                    </array>
                </dict>
                <dict>
                    <key>CFBundleTypeRole</key>
                    <string>Editor</string>
                    <key>CFBundleURLSchemes</key>
                    <array>
                        <string>QQ41D42AF9</string>
                    </array>
                </dict>
            </array>
            <key>LSApplicationQueriesSchemes</key>
            <array>
                <string>wechat</string>
                <string>weixin</string>
                <string>sinaweibohd</string>
                <string>sinaweibo</string>
                <string>sinaweibosso</string>
                <string>weibosdk</string>
                <string>weibosdk2.5</string>
                <string>mqqapi</string>
                <string>mqq</string>
                <string>mqqOpensdkSSoLogin</string>
                <string>mqqconnect</string>
                <string>mqqopensdkdataline</string>
                <string>mqqopensdkgrouptribeshare</string>
                <string>mqqopensdkfriend</string>
                <string>mqqopensdkapi</string>
                <string>mqqopensdkapiV2</string>
                <string>mqqopensdkapiV3</string>
                <string>mqzoneopensdk</string>
                <string>wtloginmqq</string>
                <string>wtloginmqq2</string>
                <string>mqqwpa</string>
                <string>mqzone</string>
                <string>mqzonev2</string>
                <string>mqzoneshare</string>
                <string>wtloginqzone</string>
                <string>mqzonewx</string>
                <string>mqzoneopensdkapiV2</string>
                <string>mqzoneopensdkapi19</string>
                <string>mqzoneopensdkapi</string>
                <string>mqzoneopensdk</string>
            </array>
        ...
        </dict>
    </plist>

手动添加Android平台

  • android/setting.gradle中添加

    include ':react-native-umeng-share'
    project(':react-native-umeng-share').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-umeng-share/android')
  • android/app/build.gradle中的添加

    dependencies {
        ...
        compile project(':react-native-umeng-share')
        ...
    }
  • android/build.gradle中添加project.ext.manifestPlaceholders:

    allprojects {
        ...
        project.ext {
            manifestPlaceholders = [UmengAppKey: "",
                                    QQAppId    : ""
            ]
        }
        ...
    }
  • android/app/src/main/java/[...]/MainActivity.java

  • 文件顶部添加 import net.monkeyrun.umengshare.*;

  • getPackages()方法中添加 new UmengSharePackage()

##示例

import UmengShare from 'react-native-umeng-share'

...

UmengShare.setAppKey(UmengAppKey)
//ios

//url:默认分享的链接
UmengShare.setWXAppId(appId,appSecret,url)
//supportWebView:是否支持web分享
UmengShare.setQQWithAppId(appId,appSecret,url,supportWebView)

//shareData示例
const shareData={
	url:'http://www.umeng.com',
	content:'分享的文字内容',
	title:'分享的标题',
	imageSource:require('../someAssetImage.png')
	//或者
	imageSource:require('../someInternetImage.png')
}

//设置分享内容
UmengShare.setQQData(shareData)
UmengShare.setQzoneData(shareData)
UmengShare.setWechatSessionData(shareData)
UmengShare.setWechatTimelineData(shareData)

//只更改分享内容和图片,并弹出分享页面
UmengShare.presentSnsIconSheetView(content,require('../someAssetImage.png'))
UmengShare.presentSnsIconSheetView(content,{uri:'http://....someInternetImage.png'})
...


//android

UmengShare.setWXAppId(appId,appSecret)
UmengShare.setQQZone(appId,appSecret)

//弹出分享页面
UmengShare.openShareAction(content,title,url,require('../someAssetImage.png'))
UmengShare.openShareAction(content,title,url,{uri:'http://....someInternetImage.png'})

感谢

https://github.com/sparkdreamstudio/rn-umeng-share

About

Umeng share component for React Native


Languages

Language:Objective-C 95.2%Language:Java 2.2%Language:HTML 1.6%Language:JavaScript 1.0%