React Native 제3자 플랫폼 이 공유 하 는 인 스 턴 스(Android,IOS 더 블 플랫폼)

본 고 는 주로 React Native 제3자 플랫폼 이 공유 하 는 인 스 턴 스(Android,IOS 더 블 플랫폼)를 소개 하고 여러분 에 게 공유 합 니 다.구체 적 으로 다음 과 같 습 니 다.
원본 코드 는 Github 에서 시작 되 었 습 니 다.주 소 는 react-native-share[한 줄 코드,더 블 플랫폼 공유]을 클릭 하 십시오.
현재 공 유 를 지원 하 는 플랫폼 은[QQ][QQ 공간][위 챗][모멘트][웨 이 보][페 이 스 북]이 있 습 니 다.  환영 합 니 다 스타,포크....
[Android 플랫폼 설정]
1.app 디 렉 터 리 에 libs 폴 더 를 만 들 고 의존 파일 을 추가 합 니 다[원본 코드 에 있 는 libs 디 렉 터 리 를 직접 복사 하면 됩 니 다]
2.app/src/main 디 렉 터 리 에 jniLibs 디 렉 터 리 를 만 들 고 JNI 파일 을 추가 합 니 다.
3.패키지 이름 디 렉 터 리 에 필요 한 인 터 랙 션 코드 를 도입 합 니 다[원본 코드 에서 apshare,wxapi,WBshare Activity,module 를 직접 복사 하면 됩 니 다.import 의 경로 가 정확 한 지 주의 하 십시오]
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 파일 의에 공유 플랫폼 을 추가 합 니 다[원본 코드 를 직접 복사 하면 됩 니 다]

<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> 
<service android: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-relase-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 {   
     storeFile file(MYAPP_RELEASE_STORE_FILE)   
     storePassword MYAPP_RELEASE_STORE_PASSWORD   
     keyAlias MYAPP_RELEASE_KEY_ALIAS   
     keyPassword MYAPP_RELEASE_KEY_PASSWORD   
   }   
  }   
  buildTypes {   
   release {   
    ...   
   signingConfig signingConfigs.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); 
 }
 【 iOS 플랫폼 설정]
1.소스 코드 에 있 는 ios 디 렉 터 리 에 있 는 UMSocial 을 프로젝트 에 추가 하고 끌 어 다 놓 으 면 됩 니 다.
2.TARGET 의 항목 을 선택 하고 Build Setting 에서 Other Linker Flags 를 찾 아 가입-ObjC,-Objc 라 고 쓰 지 않도록 주의 하 세 요.
3.U-Share SDK 가 의존 하 는 시스템 라 이브 러 리 가입

다음 의존 도 를 순서대로 추가 합 니 다:
SystemConfiguration.framework
CoreGraphics.framework
CoreTelephony.framework
ImageIO.framework
libsqlite3.tbd
libc++.tbd
libz.tbd
4.Info.plist 파일 아래 SSO 화이트 리스트 설정[바로 복사 하면 됩 니 다]

<key>LSApplicationQueriesSchemes</key> 
<array> 
  <!--    URL Scheme    --> 
  <string>wechat</string> 
  <string>weixin</string> 
 
  <!--      URL Scheme    --> 
  <string>sinaweibohd</string> 
  <string>sinaweibo</string> 
  <string>sinaweibosso</string> 
  <string>weibosdk</string> 
  <string>weibosdk2.5</string> 
 
  <!-- QQ、Qzone、TIM URL Scheme    --> 
  <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>mqqopensdkapiV4</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>mqqbrowser</string> 
  <string>mttbrowser</string> 
  <string>tim</string> 
  <string>timapi</string> 
  <string>timopensdkfriend</string> 
  <string>timwpa</string> 
  <string>timgamebindinggroup</string> 
  <string>timapiwallet</string> 
  <string>timOpensdkSSoLogin</string> 
  <string>wtlogintim</string> 
  <string>timopensdkgrouptribeshare</string> 
  <string>timopensdkapiV4</string> 
  <string>timgamebindinggroup</string> 
  <string>timopensdkdataline</string> 
  <string>wtlogintimV1</string> 
  <string>timapiV1</string> 
  <!-- Facebook URL Scheme    --> 
  <string>fbapi</string> 
  <string>fb-messenger-api</string> 
  <string>fbauth2</string> 
  <string>fbshareextension</string> 
</array> 
5.URL 구성 표 설정

작은 편지
위 챗 appKey
wxdc1e388c3822c80b
 
QQ/Qzone/TIM
URL 구성 표 두 개 를 추가 해 야 합 니 다.
1."tencent"+텐 센트 QQ 상호 연결 응용 appID
2."QQ"+텐 센트 QQ 상호 연결 응용 appID 16 진법 으로 변환(8 자리 앞 보충 0 미 만)
예 를 들 어 appid:100424468 1,tencent 100424468 
2、QQ05fc5b14
QQ05fc5b 14 는 100424468 16 진법 으로 8 자리 가 부족 하여 0 을 앞으로 보충 한 다음"QQ"접 두 사 를 추가 합 니 다.
시 나 웨 이 보
"wb"+시 나 닷 컴 앱 키
wb3921700954
6.AppDelegate.m 에서 U-Share 및 제3자 플랫폼 초기 화
(1)도입 헤더 파일:\#import[직접 복사 하면 됩 니 다]
(2)launchOptions 에 우 맹 키 설정[바로 복사 하면 됩 니 다]

/*        */ 
[[UMSocialManager defaultManager] openLog:YES]; 
 
/*     appkey */ 
[[UMSocialManager defaultManager] setUmSocialAppkey:USHARE_DEMO_APPKEY]; 
 
[self configUSharePlatforms]; 
 
[self confitUShareSettings]; 
(3)AppDelegate.m 파일 에 다음 과 같은 코드 를 추가 하고 제3자 플랫폼 을 설정 합 니 다[직접 복사 하면 됩 니 다]
launchOptions:

/*        */ 
[[UMSocialManager defaultManager] openLog:YES]; 
 
/*     appkey */ 
[[UMSocialManager defaultManager] setUmSocialAppkey:@"59783b11f29d981b2f000984"]; 
 
[self configUSharePlatforms]; 
 
[self confitUShareSettings]; 

- (void)confitUShareSettings 
{ 
 /* 
  *        
  */ 
 //[UMSocialGlobal shareInstance].isUsingWaterMark = YES; 
  
 /* 
  *       https,   http    ,    info.plist       
  <key>NSAppTransportSecurity</key> 
  <dict> 
  <key>NSAllowsArbitraryLoads</key> 
  <true/> 
  </dict> 
  */ 
 [UMSocialGlobal shareInstance].isUsingHttpsWhenShareContent = NO; 
  
} 
 

- (void)configUSharePlatforms 
{ 
  /* 
        appKey appSecret 
   [     U-Share 4/5    ]http://dev.umeng.com/social/ios/%E8%BF%9B%E9%98%B6%E6%96%87%E6%A1%A3#1_1 
   */ 
  [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:@"wxdc1e388c3822c80b" appSecret:@"3baf1193c85774b3fd9d18447d76cab0" redirectURL:nil]; 
  /* 
   *          ,      
   */ 
  //[[UMSocialManager defaultManager] removePlatformProviderWithPlatformTypes:@[@(UMSocialPlatformType_WechatFavorite)]]; 
 
  /*      QQ   appID 
   * U-Share SDK           ,   appKey appSecret      , QQ     appID  U-Share appKey      。 
   100424468.no permission of union id 
   [QQ/QZone      ]http://dev.umeng.com/social/ios/%E8%BF%9B%E9%98%B6%E6%96%87%E6%A1%A3#1_3 
  */ 
  [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:@"1105821097"/*  QQ   appID*/ appSecret:nil redirectURL:@"http://mobile.umeng.com/social"]; 
 
  /* 
        appKey appSecret 
   [        ]http://dev.umeng.com/social/ios/%E8%BF%9B%E9%98%B6%E6%96%87%E6%A1%A3#1_2 
   */ 
  [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:@"3921700954" appSecret:@"04b48b094faeb16683c32669824ebdad" redirectURL:@"https://sns.whalecloud.com/sina2/callback"]; 
  /*   Facebook appKey UrlString */ 
  [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Facebook appKey:@"506027402887373" appSecret:nil redirectURL:nil]; 
} 
(4)리 셋 설정[바로 복사 하면 됩 니 다]

[objc] view plain copy
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 
{ 
  //6.3   API  ,         (  :  facebookSDK,VK )   [   6.2 api       ],          
  BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url sourceApplication:sourceApplication annotation:annotation]; 
  if (!result) { 
     //       SDK    
  } 
  return result; 
} 
7.ios 디 렉 터 리 아래[sharemodule.h],[sharemodule.m]파일 을 프로젝트 에 끌 어 다 놓 으 면 됩 니 다.
【공유】

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); 
      
 }); 
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기