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 授權下使用。有關詳細信息,請參閱許可證文件。