MonkeyKing ajuda você a postar mensagens SNS em redes sociais chinesas, sem seus SDKs com bugs.
MonkeyKing usa o mesmo processo de análise do openshare. Também usamos algumas ferramentas de engenharia reversa, como o Hopper Disassembler, para revelar vários mecanismos de autenticação não documentados nos bastidores. Ele suporta o compartilhamento de texto , URL , imagem , áudio , vídeo e arquivo para WeChat , QQ , Alipay ou Weibo . MonkeyKing também pode postar mensagens no Weibo por meio de uma página da web. (Nota: Áudio e Vídeo são exclusivos do WeChat ou QQ, e Arquivo é exclusivo do QQ Dataline)
MonkeyKing também oferece suporte a pagamentos OAuth e móveis via WeChat e Alipay!
Rápido 5, iOS 9
(Para Swift 4.2, use a versão 1.13.0)
(Para Swift 4.1/4.0, use a versão 1.11.0)
(Para Swift 3, use a versão 1.3.0)
Exemplo: Compartilhar no WeChat (微信):
No Info.plist
do destino do seu projeto, defina URL Type
, LSApplicationQueriesSchemes
da seguinte forma:
Você também deve adicionar weixinULAPI
depois de ativar o Universal Link do seu aplicativo WeChat.
Cadastrar conta: // não é necessário fazer isso aqui, mas por uma questão de comodidade
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
}
Anexe o seguinte código para lidar com retornos de chamada:
// 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 )
}
Lembre-se de lidar com userActivities se estiver usando UIScene
em seu projeto:
// SceneDelegate.swift
func scene ( _ scene : UIScene , continue userActivity : NSUserActivity ) {
MonkeyKing . handleOpenUserActivity ( userActivity )
}
Prepare sua mensagem e peça ao MonkeyKing para entregá-la:
@ 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 ) " )
}
}
Está feito!
Exemplo: 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 apenas para código
MonkeyKing . weChatOAuthForCode { [ weak self ] ( code , error ) in
guard let code = code else {
return
}
// TODO: fetch info with code
}
Se o usuário não tiver o aplicativo Weibo instalado em seus dispositivos, o MonkeyKing usará o web OAuth:
Exemplo: Alipay
let order = MonkeyKing . Order . alipay ( urlString : urlString , scheme : nil )
MonkeyKing . deliver ( order ) { result in
print ( " result: ( result ) " )
}
Você precisa configurar
pay.php
em um servidor remoto. Você pode encontrar um exemplo depay.php
no projeto 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 )
}
}
Observe que username
tem um prefixo gh_
(原始ID).
Se você gosta de usar UIActivityViewController
para compartilhar, o MonkeyKing tem AnyActivity
que pode ajudá-lo.
Verifique a demonstração para mais informações.
github "nixzhu/MonkeyKing"
pod 'MonkeyKing'
https://github.com/nixzhu/MonkeyKing
Obrigado a todos os contribuidores.
Logotipos WeChat de WeChat-Logo de Ray.
MonkeyKing está disponível sob a licença MIT. Consulte o arquivo LICENSE para obter mais informações.