Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

修复RCTEventEmitter bridge 为空无法分享图片问题 #85

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 61 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,62 @@
/android/build
# Logs
logs
*.log

# Runtime data
pids
*.pid
*.seed

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directory
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
node_modules
npm-debug.log

# OSX
#
.DS_Store

examples/

# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
project.xcworkspace

# Android/IJ
#
react-native-dialogs.iml
.idea
.gradle
local.properties
android/*.iml
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@ repositories {

dependencies {
compile 'com.facebook.react:react-native:+'
compile files('libs/open_sdk_r5793_lite.jar')
compile fileTree(dir: "libs", include: ["*.jar"])
}

Binary file removed android/libs/open_sdk_r5793_lite.jar
Binary file not shown.
Binary file added android/libs/open_sdk_r6137_lite.jar
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,8 @@ private void _shareToQQ(ReadableMap data, int scene) {
if (data.hasKey(RCTQQShareImageUrl)){
bundle.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, data.getString(RCTQQShareImageUrl));
}


if (data.hasKey("appName")){
bundle.putString(QQShare.SHARE_TO_QQ_APP_NAME, data.getString("appName"));
}
Expand All @@ -177,7 +179,10 @@ private void _shareToQQ(ReadableMap data, int scene) {
bundle.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);
} else if (type.equals(RCTQQShareTypeImage)){
bundle.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_IMAGE);
bundle.putString(QQShare.SHARE_TO_QQ_IMAGE_LOCAL_URL, data.getString(RCTQQShareImageUrl));
if (data.hasKey(RCTQQShareImageUrl)) {
bundle.putString(QQShare.SHARE_TO_QQ_IMAGE_LOCAL_URL, data.getString(RCTQQShareImageUrl));
bundle.remove(QQShare.SHARE_TO_QQ_IMAGE_URL);
}
} else if (type.equals(RCTQQShareTypeAudio)) {
bundle.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_AUDIO);
if (data.hasKey("flashUrl")){
Expand Down
1 change: 1 addition & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ function waitForResponse(type) {
}
savedCallback = result => {
if (result.type !== type) {
reject(new Error('undefined type'));
return;
}
savedCallback = undefined;
Expand Down
15 changes: 0 additions & 15 deletions ios/RCTQQAPI.debug.xcconfig

This file was deleted.

15 changes: 0 additions & 15 deletions ios/RCTQQAPI.release.xcconfig

This file was deleted.

11 changes: 3 additions & 8 deletions ios/RCTQQAPI.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@
9139321F1C232D310085E3BA /* RCTQQAPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTQQAPI.h; sourceTree = "<group>"; };
913932211C232D310085E3BA /* RCTQQAPI.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RCTQQAPI.m; sourceTree = "<group>"; };
913932401C232ED60085E3BA /* TencentOpenAPI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = TencentOpenAPI.framework; sourceTree = "<group>"; };
9139325C1C233E370085E3BA /* RCTQQAPI.debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = RCTQQAPI.debug.xcconfig; sourceTree = "<group>"; };
9139325D1C233E480085E3BA /* RCTQQAPI.release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = RCTQQAPI.release.xcconfig; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand All @@ -47,8 +45,6 @@
913932131C232D310085E3BA = {
isa = PBXGroup;
children = (
9139325C1C233E370085E3BA /* RCTQQAPI.debug.xcconfig */,
9139325D1C233E480085E3BA /* RCTQQAPI.release.xcconfig */,
9139321E1C232D310085E3BA /* RCTQQAPI */,
9139321D1C232D310085E3BA /* Products */,
);
Expand Down Expand Up @@ -111,6 +107,7 @@
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
English,
en,
);
mainGroup = 913932131C232D310085E3BA;
Expand Down Expand Up @@ -171,7 +168,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
Expand Down Expand Up @@ -208,7 +205,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
Expand All @@ -217,7 +214,6 @@
};
913932261C232D310085E3BA /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9139325C1C233E370085E3BA /* RCTQQAPI.debug.xcconfig */;
buildSettings = {
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
Expand All @@ -239,7 +235,6 @@
};
913932271C232D310085E3BA /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9139325D1C233E480085E3BA /* RCTQQAPI.release.xcconfig */;
buildSettings = {
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
Expand Down
2 changes: 1 addition & 1 deletion ios/RCTQQAPI/RCTQQAPI.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@
#define RCTQQShareWebpageUrl @"webpageUrl"
#define RCTQQShareImageUrl @"imageUrl"

@interface RCTQQAPI : RCTEventEmitter<RCTBridgeModule>
@interface RCTQQAPI : RCTEventEmitter

@end
7 changes: 3 additions & 4 deletions ios/RCTQQAPI/RCTQQAPI.m
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

#import "RCTQQAPI.h"
#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/TencentOAuthObject.h>
#import <TencentOpenAPI/QQApiInterface.h>
#import <TencentOpenAPI/QQApiInterfaceObject.h>

Expand All @@ -29,7 +28,7 @@ @interface RCTQQAPI()<QQApiInterfaceDelegate, TencentSessionDelegate> {

@implementation RCTQQAPI

@synthesize bridge = _bridge;
//@synthesize bridge = _bridge;

RCT_EXPORT_MODULE();

Expand Down Expand Up @@ -124,13 +123,13 @@ - (void)handleOpenURL:(NSNotification *)note

- (void)_shareToQQWithData:(NSDictionary *)aData scene:(int)aScene resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject{
NSString *imageUrl = aData[RCTQQShareImageUrl];
if (imageUrl.length && _bridge.imageLoader) {
if (imageUrl.length && self.bridge.imageLoader) {
CGSize size = CGSizeZero;
if (![aData[RCTQQShareType] isEqualToString:RCTQQShareTypeImage]) {
CGFloat thumbImageSize = 80;
size = CGSizeMake(thumbImageSize,thumbImageSize);
}
[_bridge.imageLoader loadImageWithURLRequest:[RCTConvert NSURLRequest:imageUrl] callback:^(NSError *error, UIImage *image) {
[self.bridge.imageLoader loadImageWithURLRequest:[RCTConvert NSURLRequest:imageUrl] callback:^(NSError *error, UIImage *image) {
dispatch_async(dispatch_get_main_queue(), ^{
[self _shareToQQWithData:aData image:image scene:aScene resolve:resolve reject:reject];
});
Expand Down
46 changes: 31 additions & 15 deletions ios/RCTQQAPI/TencentOpenAPI.framework/Headers/QQApiInterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
#import <Foundation/Foundation.h>
#import "QQApiInterfaceObject.h"

typedef void (^sendResultBlock)(NSDictionary *result);

/**
\brief 处理来至QQ的请求及响应的回调协议
*/
Expand Down Expand Up @@ -51,6 +53,7 @@
*/
+ (QQApiSendResultCode)sendReq:(QQBaseReq *)req;


/**
向手Q QZone结合版发起分享请求
\note H5分享只支持单张网络图片的传递
Expand All @@ -60,37 +63,39 @@
+ (QQApiSendResultCode)SendReqToQZone:(QQBaseReq *)req;

/**
向手Q 群部落发起分享请求
\note H5分享只支持单张网络图片的传递
向手Q发起设置QQ头像
\param req 分享内容的请求
\return 请求发送结果码
*/
+ (QQApiSendResultCode)SendReqToQQGroupTribe:(QQBaseReq *)req;
+ (QQApiSendResultCode)sendMessageToQQAvatarWithReq:(QQBaseReq*)req;

/**
向手Q发送应答消息
\param resp 应答消息
\return 应答发送结果码
向手Q发起组图分享到表情收藏
\param req 分享内容的请求
\return 请求发送结果码
*/
+ (QQApiSendResultCode)sendResp:(QQBaseResp *)resp;
+ (QQApiSendResultCode)sendMessageToFaceCollectionWithReq:(QQBaseReq*)req;

/**
检测是否已安装QQ
\return 如果QQ已安装则返回YES,否则返回NO

\note SDK目前已经支持QQ、TIM授权登录及分享功能, 会按照QQ>TIM的顺序进行调用。
只要用户安装了QQ、TIM中任意一个应用,都可为第三方应用进行授权登录、分享功能。
第三方应用在接入SDK时不需要判断是否安装QQ、TIM。若有判断安装QQ、TIM的逻辑建议移除。
*/
+ (BOOL)isQQInstalled;

/**
检测是否已安装TIM
\return 如果TIM已安装则返回YES,否则返回NO

\note SDK目前已经支持QQ、TIM授权登录及分享功能, 会按照QQ>TIM的顺序进行调用。
只要用户安装了QQ、TIM中任意一个应用,都可为第三方应用进行授权登录、分享功能。
第三方应用在接入SDK时不需要判断是否安装QQ、TIM。若有判断安装QQ、TIM的逻辑建议移除。
*/
+ (BOOL)isTIMInstalled;

/**
批量检测QQ号码是否在线
*/
+ (void)getQQUinOnlineStatues:(NSArray *)QQUins delegate:(id<QQApiInterfaceDelegate>)delegate;

/**
检测QQ是否支持API调用
\return 如果当前安装QQ版本支持API调用则返回YES,否则返回NO
Expand All @@ -101,7 +106,19 @@
检测TIM是否支持API调用
\return 如果当前安装TIM版本支持API调用则返回YES,否则返回NO
*/
+ (BOOL)isTIMSupportApi;
+ (BOOL)isTIMSupportApi __attribute__((deprecated("已过期, 建议删除调用,调用地方用YES替代。")));

/**
检测是否支持分享
\return 如果当前已安装QQ且QQ版本支持API调用 或者 当前已安装TIM且TIM版本支持API调用则返回YES,否则返回NO
*/
+ (BOOL)isSupportShareToQQ;

/**
检测是否支持分享到QQ结合版QZone
\return 如果当前已安装QQ且QQ版本支持API调用则返回YES,否则返回NO
*/
+ (BOOL)isSupportPushToQZone;

/**
启动QQ
Expand All @@ -126,9 +143,8 @@
/**
获取TIM下载地址

如果App通过<code>QQApiInterface#isTIMInstalled</code>和<code>QQApiInterface#isTIMSupportApi</code>检测发现TIM没安装或当前版本TIM不支持API调用,可引导用户通过打开此链接下载最新版TIM。
如果App通过<code>QQApiInterface#isTIMInstalled</code>检测发现TIM没安装或当前版本TIM不支持API调用,可引导用户通过打开此链接下载最新版TIM。
\return iPhoneTIM下载地址
*/
+ (NSString *)getTIMInstallUrl;

@end
Loading