يساعدك MonkeyKing على نشر رسائل SNS على الشبكات الاجتماعية الصينية، دون استخدام أدوات SDK التي بها أخطاء.
يستخدم MonkeyKing نفس عملية التحليل الخاصة بنظام المشاركة المفتوحة. نستخدم أيضًا بعض أدوات الهندسة العكسية مثل Hopper Disassembler للكشف عن العديد من آليات المصادقة غير الموثقة تحت الغطاء. وهو يدعم مشاركة النص وعنوان URL والصورة والصوت والفيديو والملفات مع WeChat أو QQ أو Alipay أو Weibo . يمكن لـ MonkeyKing أيضًا نشر رسائل على Weibo عبر صفحة ويب. (ملاحظة: الصوت والفيديو حصريان لـ WeChat أو QQ، والملف حصري لـ QQ Dataline)
يدعم MonkeyKing أيضًا OAuth والدفع عبر الهاتف المحمول عبر WeChat وAlipay!
سويفت 5، آي أو إس 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
بمجرد تمكين الرابط العالمي لتطبيق 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 )
}
تذكر التعامل مع أنشطة المستخدم إذا كنت تستخدم 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 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
شكرا لجميع المساهمين.
شعارات WeChat من WeChat-Logo بواسطة Ray.
MonkeyKing متاح بموجب ترخيص MIT. راجع ملف الترخيص لمزيد من المعلومات.