MonkeyKing은 버그가 있는 SDK 없이 중국 소셜 네트워크에 SNS 메시지를 게시할 수 있도록 도와줍니다.
MonkeyKing은 openshare와 동일한 분석 프로세스를 사용합니다. 또한 Hopper Disassembler와 같은 일부 리버스 엔지니어링 도구를 사용하여 문서화되지 않은 여러 인증 메커니즘을 공개합니다. WeChat , QQ , Alipay 또는 Weibo 에 대한 텍스트 , URL , 이미지 , 오디오 , 비디오 및 파일 공유를 지원합니다. MonkeyKing은 웹페이지를 통해 Weibo에 메시지를 게시할 수도 있습니다. (참고: 오디오 및 비디오는 WeChat 또는 QQ 전용이며 파일은 QQ Dataline 전용입니다)
MonkeyKing은 WeChat 및 Alipay를 통한 OAuth 및 모바일 결제 도 지원합니다!
스위프트 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
다음과 같이 설정합니다.
WeChat 앱의 범용 링크를 활성화한 후에는 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.
}
또는 코드 전용 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
모든 기여자에게 감사드립니다.
Ray의 WeChat-Logo에서 가져온 WeChat 로고.
MonkeyKing은 MIT 라이선스에 따라 사용할 수 있습니다. 자세한 내용은 LICENSE 파일을 참조하세요.