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 App บนอุปกรณ์ MonkeyKing จะใช้ web OAuth:
ตัวอย่าง: อาลีเพย์
let order = MonkeyKing . Order . alipay ( urlString : urlString , scheme : nil )
MonkeyKing . deliver ( order ) { result in
print ( " result: ( result ) " )
}
คุณต้องกำหนด
pay.php
ในเซิร์ฟเวอร์ระยะไกล คุณสามารถดูตัวอย่างpay.php
ได้ที่โครงการ 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 )
}
}
โปรดทราบว่า username
มีคำนำหน้า gh_
(原始ID)
หากคุณต้องการใช้ UIActivityViewController
สำหรับการแชร์ MonkeyKing มี AnyActivity
ที่สามารถช่วยคุณได้
ตรวจสอบการสาธิตสำหรับข้อมูลเพิ่มเติม
github "nixzhu/MonkeyKing"
pod 'MonkeyKing'
https://github.com/nixzhu/MonkeyKing
ขอขอบคุณผู้มีส่วนร่วมทุกคน
โลโก้ WeChat จาก WeChat-Logo โดย Ray
MonkeyKing มีให้บริการภายใต้ใบอนุญาต MIT ดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม