MonkeyKing 可帮助您将 SNS 消息发布到中国社交网络,而无需使用有缺陷的 SDK。
MonkeyKing采用与openshare相同的分析流程。我们还使用一些逆向工程工具(例如 Hopper Disassembler)来揭示几种未记录的身份验证机制。支持将文本、 URL 、图片、音频、视频、文件分享到微信、 QQ 、支付宝、微博。美猴王还可以通过网页向微博发消息。 (注:音频和视频为微信或QQ专属,文件为QQ数据线专属)
MonkeyKing还支持OAuth以及微信和支付宝移动支付!
斯威夫特 5、iOS 9
(对于 Swift 4.2,请使用版本 1.13.0)
(对于 Swift 4.1/4.0,请使用版本 1.11.0)
(对于 Swift 3,使用版本 1.3.0)
示例:分享至微信:
在项目目标的Info.plist
中,设置URL Type
、 LSApplicationQueriesSchemes
,如下所示:
一旦启用微信应用程序的通用链接,您还应该添加weixinULAPI
。
注册账号://这里可以不用这么做,但为了方便起见
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
}
附加以下代码来处理回调:
// 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 )
}
如果您在项目中使用UIScene
,请记住处理 userActivities:
// SceneDelegate.swift
func scene ( _ scene : UIScene , continue userActivity : NSUserActivity ) {
MonkeyKing . handleOpenUserActivity ( userActivity )
}
准备您的消息并要求 MonkeyKing 发送:
@ 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 ) " )
}
}
完成了!
示例:微博OAuth
MonkeyKing . oauth ( for : . weibo ) { ( oauthInfo , response , error ) -> Void in
print ( " OAuthInfo ( oauthInfo ) error ( error ) " )
// Now, you can use the token to fetch info.
}
或者,微信 OAuth 仅用于代码
MonkeyKing . weChatOAuthForCode { [ weak self ] ( code , error ) in
guard let code = code else {
return
}
// TODO: fetch info with code
}
如果用户的设备上没有安装微博应用程序,MonkeyKing 将使用 Web OAuth:
示例:支付宝
let order = MonkeyKing . Order . alipay ( urlString : urlString , scheme : nil )
MonkeyKing . deliver ( order ) { result in
print ( " result: ( result ) " )
}
您需要在远程服务器中配置
pay.php
。您可以在演示项目中找到pay.php
的示例。
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 )
}
}
请注意, username
有一个gh_
前缀(原始 ID)。
如果您喜欢使用UIActivityViewController
进行共享,那么 MonkeyKing 的AnyActivity
可以帮助您。
查看演示以获取更多信息。
github "nixzhu/MonkeyKing"
pod 'MonkeyKing'
https://github.com/nixzhu/MonkeyKing
感谢所有贡献者。
微信徽标来自 Ray 的WeChat-Logo。
MonkeyKing 可在 MIT 许可证下使用。有关详细信息,请参阅许可证文件。