NBus
1.3.0
NBus est une bibliothèque de partage et de connexion pour les applications sociales chinoises, telles que WeChat, QQ et Weibo. NBus prend également en charge le partage du système et la connexion avec Apple.
Gestionnaire | Texte | Image | Audio | Vidéo | Page web | Déposer | Miniprogramme |
---|---|---|---|---|---|---|---|
Gestionnaire QQ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
QQSDKHandler | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Gestionnaire Wechat | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
WechatSDKHandler | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Gestionnaire Weibo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||
WeiboSDKHandler | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||
Gestionnaire système | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Gestionnaire | authentification |
---|---|
Gestionnaire QQ | ✔️ |
QQSDKHandler | ✔️ |
Gestionnaire Wechat | ✔️ |
WechatSDKHandler | ✔️ |
Gestionnaire Weibo | ✔️ |
WeiboSDKHandler | ✔️ |
Gestionnaire système | ✔️ |
Gestionnaire | Miniprogramme |
---|---|
Gestionnaire QQ | ✔️ |
QQSDKHandler | ✔️ |
Gestionnaire Wechat | ✔️ |
WechatSDKHandler | ✔️ |
Gestionnaire Weibo | |
WeiboSDKHandler | |
Gestionnaire système |
- ✔️ - Assistance
- ⭕ - Support expérimental
- - PAS de support
LSApplicationQueriesSchemes
dans 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 " >
< 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 >
CFBundleURLTypes
dans 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 " >
< 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 >
com.apple.developer.associated-domains
dans TARGET.entitlements
. <? 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 )
}
}
Pour exécuter l'exemple de projet, clonez le dépôt, modifiez le fichier Example/NBus/Config.xcconfig
et exécutez d'abord bundle install && bundle exec fastlane setup && open Example/NBus.xcworkspace
à partir du répertoire Exemple.
Vous pouvez utiliser NBus
directement, qui inclut tous les gestionnaires de pontage du SDK.
pod "NBus" # default subspecs "SDKHandlers"
ou tous les gestionnaires open source.
pod "NBus/BusHandlers"
ou ce que vous aimez.
pod "NBus/QQSDKHandler"
pod "NBus/QQHandler"
pod "NBus/WechatSDKHandler"
pod "NBus/WechatHandler"
pod "NBus/WeiboSDKHandler"
pod "NBus/WeiboHandler"
pod "NBus/SystemHandler"
même ces SDK.
pod "NBusQQSDK"
pod "NBusWechatSDK"
pod "NBusWeiboSDK"
WeiboSDK.bundle
doit être enregistré dans le chemin racine de l'application. nuomi1, [email protected]
NBus est disponible sous licence MIT. Voir le fichier LICENSE pour plus d'informations.