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);
});
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
바삭바삭하고 간단한 결제 페이지 만들기먼저 Next.js에서 프로젝트를 만듭니다. Vercel & Next.js가 매우 편하기 때문에 최근에는이 구성을 사용하고 있습니다. 그런 다음 Tailwind CSS를 넣습니다. Tailwind CSS를 사용하면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.