MonkeyKing vous aide à publier des messages SNS sur les réseaux sociaux chinois, sans leurs SDK bogués.
MonkeyKing utilise le même processus d'analyse d'openshare. Nous utilisons également certains outils d'ingénierie inverse tels que Hopper Disassembler pour dévoiler plusieurs mécanismes d'authentification non documentés sous le capot. Il prend en charge le partage de texte , d'URL , d'images , d'audio , de vidéo et de fichiers sur WeChat , QQ , Alipay ou Weibo . MonkeyKing peut également publier des messages sur Weibo via une page Web. (Remarque : l'audio et la vidéo sont exclusifs à WeChat ou QQ, et le fichier est exclusif à QQ Dataline)
MonkeyKing prend également en charge les paiements OAuth et mobile via WeChat et Alipay !
Swift 5, iOS 9
(Pour Swift 4.2, utilisez la version 1.13.0)
(Pour Swift 4.1/4.0, utilisez la version 1.11.0)
(Pour Swift 3, utilisez la version 1.3.0)
Exemple : Partager sur WeChat (微信) :
Dans le Info.plist
de votre cible de projet, définissez URL Type
et LSApplicationQueriesSchemes
comme suit :
Vous devez également ajouter weixinULAPI
une fois que vous avez activé Universal Link de votre application WeChat.
Créer un compte : // il n'est pas nécessaire de le faire ici, mais par souci de commodité
func application ( _ application : UIApplication , didFinishLaunchingWithOptions launchOptions : [ UIApplicationLaunchOptionsKey : Any ] ? ) -> Bool {
MonkeyKing . regsiterAccount (
. weChat (
appID : " xxx " ,
appKey : " yyy " ,
miniAppID : nil ,
universalLink : nil // FIXME: You have to adopt Universal Link otherwise your app name becomes "Unauthorized App"(未验证应用)...
)
)
return true
}
Ajoutez le code suivant pour gérer les rappels :
// AppDelegate.swift
func application ( _ app : UIApplication , open url : URL , options : [ UIApplicationOpenURLOptionsKey : Any ] = [ : ] ) -> Bool {
//func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { // only for iOS 8
return MonkeyKing . handleOpenURL ( url )
}
N'oubliez pas de gérer les userActivities si vous utilisez UIScene
dans votre projet :
// SceneDelegate.swift
func scene ( _ scene : UIScene , continue userActivity : NSUserActivity ) {
MonkeyKing . handleOpenUserActivity ( userActivity )
}
Préparez votre message et demandez à MonkeyKing de le transmettre :
@ IBAction func shareURLToWeChatSession ( sender : UIButton ) {
MonkeyKing . registerAccount ( . weChat ( appID : " xxx " , appKey : " yyy " , miniAppID : nil ) ) // you can do it here (just before deliver)
let message = MonkeyKing . Message . weChat ( . session ( info : (
title : " Session " ,
description : " Hello Session " ,
thumbnail : UIImage ( named : " rabbit " ) ,
media : . url ( URL ( string : " http://www.apple.com/cn " ) ! )
) ) )
MonkeyKing . deliver ( message ) { success in
print ( " shareURLToWeChatSession success: ( success ) " )
}
}
C'est fait !
Exemple : Weibo OAuth
MonkeyKing . oauth ( for : . weibo ) { ( oauthInfo , response , error ) -> Void in
print ( " OAuthInfo ( oauthInfo ) error ( error ) " )
// Now, you can use the token to fetch info.
}
ou, WeChat OAuth pour le code uniquement
MonkeyKing . weChatOAuthForCode { [ weak self ] ( code , error ) in
guard let code = code else {
return
}
// TODO: fetch info with code
}
Si l'utilisateur n'a pas installé l'application Weibo sur ses appareils, MonkeyKing utilisera Web OAuth :
Exemple : Alipay
let order = MonkeyKing . Order . alipay ( urlString : urlString , scheme : nil )
MonkeyKing . deliver ( order ) { result in
print ( " result: ( result ) " )
}
Vous devez configurer
pay.php
sur un serveur distant. Vous pouvez trouver un exemple depay.php
sur le projet Demo.
let path = " ... "
MonkeyKing . launch ( . weChat ( . miniApp ( username : " gh_XXX " , path : path , type : . release ) ) ) { result in
switch result {
case . success :
break
case . failure ( let error ) :
print ( " error: " , error )
}
}
Notez que username
a un préfixe gh_
(原始ID).
Si vous aimez utiliser UIActivityViewController
pour le partage, MonkeyKing propose AnyActivity
qui peut vous aider.
Consultez la démo pour plus d’informations.
github "nixzhu/MonkeyKing"
pod 'MonkeyKing'
https://github.com/nixzhu/MonkeyKing
Merci à tous les contributeurs.
Logos WeChat de WeChat-Logo par Ray.
MonkeyKing est disponible sous licence MIT. Voir le fichier LICENSE pour plus d'informations.