MonkeyKing помогает вам публиковать сообщения SNS в китайских социальных сетях без их ошибочных SDK.
MonkeyKing использует тот же процесс анализа, что и openshare. Мы также используем некоторые инструменты обратного проектирования, такие как Hopper Disassembler, чтобы раскрыть несколько скрытых недокументированных механизмов аутентификации. Он поддерживает обмен текстом , URL-адресом , изображением , аудио , видео и файлом в WeChat , QQ , Alipay или Weibo . MonkeyKing также может публиковать сообщения в Weibo через веб-страницу. (Примечание: аудио и видео являются эксклюзивными для WeChat или QQ, а файл — эксклюзивным для QQ Dataline)
MonkeyKing также поддерживает OAuth и мобильные платежи через WeChat и Alipay!
Свифт 5, iOS 9
(Для Swift 4.2 используйте версию 1.13.0)
(Для Swift 4.1/4.0 используйте версию 1.11.0)
(Для Swift 3 используйте версию 1.3.0)
Пример: Поделиться в WeChat (微信):
В Info.plist
цели вашего проекта установите URL Type
, LSApplicationQueriesSchemes
следующим образом:
Вам также следует добавить weixinULAPI
после включения Universal Link в вашем приложении WeChat.
Регистрируем аккаунт: //здесь это делать не обязательно, но ради удобства
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 )
}
Не забудьте обрабатывать userActivities, если вы используете UIScene
в своем проекте:
// 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 ) " )
}
}
Готово!
Пример: 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.
}
или WeChat OAuth только для кода
MonkeyKing . weChatOAuthForCode { [ weak self ] ( code , error ) in
guard let code = code else {
return
}
// TODO: fetch info with code
}
Если на устройстве пользователя не установлено приложение Weibo, MonkeyKing будет использовать веб-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
Спасибо всем участникам.
Логотипы WeChat от WeChat-Logo от Рэя.
MonkeyKing доступен по лицензии MIT. Дополнительную информацию смотрите в файле ЛИЦЕНЗИИ.