NBus
1.3.0
NBus는 WeChat, QQ, Weibo와 같은 중국 소셜 애플리케이션을 위한 공유 및 로그인 라이브러리입니다. NBus는 시스템 공유 및 Apple 로그인도 지원합니다.
매니저 | 텍스트 | 영상 | 오디오 | 동영상 | 웹페이지 | 파일 | 미니프로그램 |
---|---|---|---|---|---|---|---|
QQ핸들러 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
QQSDK핸들러 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
위챗핸들러 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
WechatSDKHandler | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
웨이보 핸들러 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||
WeiboSDKHandler | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||
시스템 핸들러 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
매니저 | Oauth |
---|---|
QQ핸들러 | ✔️ |
QQSDK핸들러 | ✔️ |
위챗핸들러 | ✔️ |
WechatSDKHandler | ✔️ |
웨이보 핸들러 | ✔️ |
WeiboSDKHandler | ✔️ |
시스템 핸들러 | ✔️ |
매니저 | 미니프로그램 |
---|---|
QQ핸들러 | ✔️ |
QQSDK핸들러 | ✔️ |
위챗핸들러 | ✔️ |
WechatSDKHandler | ✔️ |
웨이보 핸들러 | |
WeiboSDKHandler | |
시스템 핸들러 |
- ✔️ - 지원
- ⭕ - 실험적 지원
- - 지원하지 않음
Info.plist
에서 LSApplicationQueriesSchemes
편집하세요. <? 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 " >
< array >
< string >mqq</ string >
< string >mqqopensdkapiV2</ string >
< string >mqqopensdklaunchminiapp</ string >
< string >mqqopensdkminiapp</ string >
< string >mqqopensdknopasteboard</ string >
< string >weixin</ string >
< string >weixinULAPI</ string >
< string >sinaweibo</ string >
< string >weibosdk</ string >
< string >weibosdk3.3</ string >
</ array >
</ plist >
Info.plist
에서 CFBundleURLTypes
편집합니다. <? 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 " >
< array >
< dict >
< key >CFBundleTypeRole</ key >
< string >Editor</ string >
< key >CFBundleURLName</ key >
< string >QQ</ string >
< key >CFBundleURLSchemes</ key >
< array >
< string >tencent123456</ string >
</ array >
</ dict >
< dict >
< key >CFBundleTypeRole</ key >
< string >Editor</ string >
< key >CFBundleURLName</ key >
< string >Wechat</ string >
< key >CFBundleURLSchemes</ key >
< array >
< string >wx123456</ string >
</ array >
</ dict >
< dict >
< key >CFBundleTypeRole</ key >
< string >Editor</ string >
< key >CFBundleURLName</ key >
< string >Weibo</ string >
< key >CFBundleURLSchemes</ key >
< array >
< string >wb123456</ string >
</ array >
</ dict >
</ array >
</ plist >
TARGET.entitlements
에서 com.apple.developer.associated-domains
편집합니다. <? 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 " >
< array >
< string >applinks:www.example.com</ string >
</ array >
</ plist >
func application (
_ application : UIApplication ,
didFinishLaunchingWithOptions launchOptions : [ UIApplication . LaunchOptionsKey : Any ] ?
) -> Bool {
let qqHandler = QQHandler (
appID : " tencent123456 " ,
universalLink : URL ( string : " https://www.example.com/qq_conn/123456/ " ) !
)
Bus . shared . handlers = [ qqHandler ]
}
func application (
_ app : UIApplication ,
open url : URL ,
options : [ UIApplication . OpenURLOptionsKey : Any ] = [ : ]
) -> Bool {
Bus . shared . openURL ( url )
}
func application (
_ application : UIApplication ,
continue userActivity : NSUserActivity ,
restorationHandler : @escaping ( [ UIUserActivityRestoring ] ? ) -> Void
) -> Bool {
Bus . shared . openUserActivity ( userActivity )
}
let message = Messages . text ( text : " NBus " )
let endpoint = Endpoints . QQ . friend
Bus . shared . share ( message : message , to : endpoint ) { result in
switch result {
case . success :
print ( " Success " )
case let . failure ( error ) :
print ( error )
}
}
let platform = Platforms . qq
Bus . shared . oauth ( with : platform ) { result in
switch result {
case let . success ( parameters ) :
let accessToken = parameters [ Bus . OauthInfoKeys . QQ . accessToken ]
let expirationDate = parameters [ Bus . OauthInfoKeys . QQ . expirationDate ]
let openID = = parameters [ Bus . OauthInfoKeys . QQ . openID ]
print ( accessToken , expirationDate , openID )
case let . failure ( error ) :
print ( error )
}
}
let program = Messages . miniProgram (
miniProgramID : " 123456 " ,
path : " /example " ,
link : URL ( string : " https://www.example.com " ) ! ,
miniProgramType : . release ,
title : " NBus " ,
description : " NBus " ,
thumbnail : UIImage ( named : " example " ) ? . jpegData ( compressionQuality : 1 )
)
let platform = Platforms . qq
Bus . shared . launch ( program : program , with : platform ) { result in
switch result {
case . success :
print ( " Success " ) // Never happen
case let . failure ( error ) :
print ( error )
}
}
예제 프로젝트를 실행하려면 리포지토리를 복제하고, Example/NBus/Config.xcconfig
파일을 편집하고, 먼저 예제 디렉터리에서 bundle install && bundle exec fastlane setup && open Example/NBus.xcworkspace
실행하세요.
모든 SDK 브리징 핸들러를 포함하는 NBus
직접 사용할 수 있습니다.
pod "NBus" # default subspecs "SDKHandlers"
또는 모든 오픈 소스 핸들러.
pod "NBus/BusHandlers"
아니면 당신이 좋아하는 것.
pod "NBus/QQSDKHandler"
pod "NBus/QQHandler"
pod "NBus/WechatSDKHandler"
pod "NBus/WechatHandler"
pod "NBus/WeiboSDKHandler"
pod "NBus/WeiboHandler"
pod "NBus/SystemHandler"
심지어 그 SDK도요.
pod "NBusQQSDK"
pod "NBusWechatSDK"
pod "NBusWeiboSDK"
WeiboSDK.bundle
앱의 루트 경로에 저장되어야 합니다. nuomi1, [email protected]
NBus는 MIT 라이센스에 따라 사용할 수 있습니다. 자세한 내용은 LICENSE 파일을 참조하세요.