From 59902cdf56fcb9f5bb8ce74e915bfdb0b951cca1 Mon Sep 17 00:00:00 2001 From: wanghualei Date: Fri, 18 Dec 2020 09:28:26 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E8=BD=AC=E5=8F=91=E7=A4=BA=E4=BE=8B?= =?UTF-8?q?=E3=80=81=E8=87=AA=E5=AE=9A=E4=B9=89=E6=9B=B4=E5=A4=9A=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E7=A4=BA=E4=BE=8B=E3=80=81=E8=AE=BE=E7=BD=AE=E7=81=B0?= =?UTF-8?q?=E5=BA=A6=E4=BF=A1=E6=81=AF=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo.xcodeproj/project.pbxproj | 20 +++- demo/AppDelegate.m | 3 + demo/Assets.xcassets/Contents.json | 6 +- .../Contents.json | 22 ++++ .../minipro_list_collect@2x.png | Bin 0 -> 2726 bytes .../minipro_list_collect@3x.png | Bin 0 -> 4349 bytes .../Contents.json | 22 ++++ .../minipro_list_service@2x.png | Bin 0 -> 2782 bytes .../minipro_list_service@3x.png | Bin 0 -> 4350 bytes demo/FINCustomMenuModel.h | 18 +++ demo/FINCustomMenuModel.m | 24 ++++ demo/FINDemoClientHelper.h | 17 +++ demo/FINDemoClientHelper.m | 106 ++++++++++++++++++ 13 files changed, 233 insertions(+), 5 deletions(-) create mode 100644 demo/Assets.xcassets/minipro_list_collect.imageset/Contents.json create mode 100644 demo/Assets.xcassets/minipro_list_collect.imageset/minipro_list_collect@2x.png create mode 100644 demo/Assets.xcassets/minipro_list_collect.imageset/minipro_list_collect@3x.png create mode 100644 demo/Assets.xcassets/minipro_list_service.imageset/Contents.json create mode 100644 demo/Assets.xcassets/minipro_list_service.imageset/minipro_list_service@2x.png create mode 100644 demo/Assets.xcassets/minipro_list_service.imageset/minipro_list_service@3x.png create mode 100644 demo/FINCustomMenuModel.h create mode 100644 demo/FINCustomMenuModel.m create mode 100644 demo/FINDemoClientHelper.h create mode 100644 demo/FINDemoClientHelper.m diff --git a/demo.xcodeproj/project.pbxproj b/demo.xcodeproj/project.pbxproj index 9e07453..7ec1768 100644 --- a/demo.xcodeproj/project.pbxproj +++ b/demo.xcodeproj/project.pbxproj @@ -7,13 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - 8A8D5069EEC4CE9564C7B391 /* libPods-demo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 28A582EE796CD12C1FF4F5DB /* libPods-demo.a */; }; 9DD565BE23EC45080011FC4A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DD565BD23EC45080011FC4A /* AppDelegate.m */; }; 9DD565C423EC45080011FC4A /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DD565C323EC45080011FC4A /* ViewController.m */; }; 9DD565C923EC450A0011FC4A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9DD565C823EC450A0011FC4A /* Assets.xcassets */; }; 9DD565CC23EC450A0011FC4A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9DD565CA23EC450A0011FC4A /* LaunchScreen.storyboard */; }; 9DD565CF23EC450A0011FC4A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DD565CE23EC450A0011FC4A /* main.m */; }; + A823321F258C3B7000C1B2D5 /* FINDemoClientHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = A823321D258C3B7000C1B2D5 /* FINDemoClientHelper.m */; }; A863B745257A09A300959AA1 /* FINExtensionHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = A863B744257A09A300959AA1 /* FINExtensionHelper.m */; }; + A8BC097A258BA095001289A3 /* FINCustomMenuModel.m in Sources */ = {isa = PBXBuildFile; fileRef = A8BC0979258BA095001289A3 /* FINCustomMenuModel.m */; }; + FBF7F422A6EA50C856DB84F7 /* libPods-demo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 28A582EE796CD12C1FF4F5DB /* libPods-demo.a */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -28,8 +30,12 @@ 9DD565CB23EC450A0011FC4A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 9DD565CD23EC450A0011FC4A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 9DD565CE23EC450A0011FC4A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + A823321D258C3B7000C1B2D5 /* FINDemoClientHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FINDemoClientHelper.m; sourceTree = ""; }; + A823321E258C3B7000C1B2D5 /* FINDemoClientHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FINDemoClientHelper.h; sourceTree = ""; }; A863B743257A09A200959AA1 /* FINExtensionHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FINExtensionHelper.h; sourceTree = ""; }; A863B744257A09A300959AA1 /* FINExtensionHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FINExtensionHelper.m; sourceTree = ""; }; + A8BC0978258BA095001289A3 /* FINCustomMenuModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FINCustomMenuModel.h; sourceTree = ""; }; + A8BC0979258BA095001289A3 /* FINCustomMenuModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FINCustomMenuModel.m; sourceTree = ""; }; FBEBA7E73B95B66C846E76FF /* Pods-demo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-demo.debug.xcconfig"; path = "Target Support Files/Pods-demo/Pods-demo.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -38,7 +44,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 8A8D5069EEC4CE9564C7B391 /* libPods-demo.a in Frameworks */, + FBF7F422A6EA50C856DB84F7 /* libPods-demo.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -68,8 +74,12 @@ children = ( 9DD565BC23EC45080011FC4A /* AppDelegate.h */, 9DD565BD23EC45080011FC4A /* AppDelegate.m */, + A823321E258C3B7000C1B2D5 /* FINDemoClientHelper.h */, + A823321D258C3B7000C1B2D5 /* FINDemoClientHelper.m */, A863B743257A09A200959AA1 /* FINExtensionHelper.h */, A863B744257A09A300959AA1 /* FINExtensionHelper.m */, + A8BC0978258BA095001289A3 /* FINCustomMenuModel.h */, + A8BC0979258BA095001289A3 /* FINCustomMenuModel.m */, 9DD565C223EC45080011FC4A /* ViewController.h */, 9DD565C323EC45080011FC4A /* ViewController.m */, 9DD565C823EC450A0011FC4A /* Assets.xcassets */, @@ -211,6 +221,8 @@ buildActionMask = 2147483647; files = ( 9DD565C423EC45080011FC4A /* ViewController.m in Sources */, + A823321F258C3B7000C1B2D5 /* FINDemoClientHelper.m in Sources */, + A8BC097A258BA095001289A3 /* FINCustomMenuModel.m in Sources */, A863B745257A09A300959AA1 /* FINExtensionHelper.m in Sources */, 9DD565BE23EC45080011FC4A /* AppDelegate.m in Sources */, 9DD565CF23EC450A0011FC4A /* main.m in Sources */, @@ -347,6 +359,8 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 9QCKYFU5M4; + ENABLE_BITCODE = NO; INFOPLIST_FILE = demo/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -365,6 +379,8 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 9QCKYFU5M4; + ENABLE_BITCODE = NO; INFOPLIST_FILE = demo/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/demo/AppDelegate.m b/demo/AppDelegate.m index 12ead9d..223ba56 100644 --- a/demo/AppDelegate.m +++ b/demo/AppDelegate.m @@ -9,6 +9,7 @@ #import "AppDelegate.h" #import "ViewController.h" #import "FINExtensionHelper.h" +#import "FINDemoClientHelper.h" #import @@ -29,6 +30,8 @@ [[FATClient sharedClient] initWithConfig:config error:nil]; + [FATClient sharedClient].delegate = [FINDemoClientHelper sharedHelper]; + [FINExtensionHelper registerCustomApis]; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; diff --git a/demo/Assets.xcassets/Contents.json b/demo/Assets.xcassets/Contents.json index da4a164..73c0059 100644 --- a/demo/Assets.xcassets/Contents.json +++ b/demo/Assets.xcassets/Contents.json @@ -1,6 +1,6 @@ { "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/demo/Assets.xcassets/minipro_list_collect.imageset/Contents.json b/demo/Assets.xcassets/minipro_list_collect.imageset/Contents.json new file mode 100644 index 0000000..96dd923 --- /dev/null +++ b/demo/Assets.xcassets/minipro_list_collect.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "minipro_list_collect@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "minipro_list_collect@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/demo/Assets.xcassets/minipro_list_collect.imageset/minipro_list_collect@2x.png b/demo/Assets.xcassets/minipro_list_collect.imageset/minipro_list_collect@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1b517c17a676e62310515fd402841808c501f4d3 GIT binary patch literal 2726 zcmV;X3R(4uP)Pxe5T6t_-M;V`a`__q*v`upri54YQOdC>E(QsCRRwYRB+D^RdY$0ve zM-oyH0wIK`L=&)-f)vDm5tqr~gW{$edmUd(M4(BLdJ&3xB(&HhDQXdIleA6J9Nzcd z@cZ8Gyv%!kZ!aH0t)FDi%=dlsUGvS%H#5svsb6({LIm~+L`I^GuLt&$2oRaFu9li? z2qB!hgi+}LIpwcJr1O`MnQpi(-<7oQIa4Qka+y4q0dHPKDCSz_!Zf~EVq zZ1bS{0Gf`eD*XqcPUDPFJ6V=3((AJHW8wt1ij34ZZKWW|!A4b_T6f$Yi6yoRi*1!i zIXu)>q@U9`|ISdVvqRFUNCy^FSsUMYOHC~CT^C;A?t-h0+V#zMS4SI9t1zdYk3l5X z+>G#i)gkt)fWZ?1@Nvtw%iFE3t@?tw^Vj)x_JhgcuyN15aAN;(sYG+s%sL7KE~Hak*GN7t!4gR8Y9^C; zg>yDGoa&k-;iZ%ql6BaN`w;bSAnIKS7V+^FECtkU*s{pDbjfzFx*SQoUm1^YT5usV zb_T5fp6=_k^BO-o*NW>U80c=ZHwBGp4|;Jy?PPNIS;E1he+1DGJg?yDSmRfTXsEBF zjY{>aS>OCcxbuh#lXbXv2!VB&imyZVbpCYPa<03!D8SIP)O7uY9s1D*)6KkrmENc)G=n7V+*+F#q;CUC2ppH4A zrzis{cONcUuoN^eT)P~Kjaq^|5~N^0c*%luf=1~ui`3^;C1nqPmE=Z zV{Rn>8`DJEucJyQ>+yKY;tPfah4Cj?1aL=jC~ZM$Cy#gbW5YDRObpaaP%_QaVZp zah0%~x_uWV#6n%uR}G}Pj;K6bf(b$SG{)l%(=eZ)6jdcIrEXsX3QTz<@dLekk(Ic= zae@g=c`$_2^;#d@B)Gd2Zb4xaGozwXn{|^sIe2?HQSC)gTjo#m!W9c;+UiHA!g41` zrdL)jmg%vImvvu@B@%PcK7t5hhSDI&xTP*+Q_rVL2_he%Cf6BBsf5F~JW)$u(XjXWBC! znDM{|#RGxM$5a_u)3EVoVHx#;3my(t9OzH(9-S&#etf6R;I$h!UXyvpIEh7np-T~@ zwBhUZW&L~hoOi*es4*=D=ZrlCV;7Jec&=-v(h{PbO6-1TVf51JFnY=j_8QB$)|5_l zbdsGl(Z;6fHaalrA%!OT-GBeLuSFO;BdZ!qyzNI>IKY;J(I;AR&_w0t>px`%ld)$n zzDIM`4r8yeQYm}1Jw{VsiJ$CpNGSJ{itnoe=@Joc`b)_)0X*qw73pN6cAHkhM zNiWJcI;_K?c&p&7s!Z8uaX|joP^#TNt9o_!HMly~^aEyDJBS!w{x^!J1w2b0#^cY( z9C*B#=Txt-$!yaN9)AB&#Z0rxjxaR!#XAx z91y+9!lADWC);20GWdUJL*GxbjQK|xd;{r&L3&r8t*`8VY|nqZ`uQ3xiRi%_KO;*! zp@mSz#b>qm@>SALcUg{pc@35Z&~MR%7(3*6kh4o%W6`0Wu7i?hI?G738Ap7x7i&x< z$)yP7ykhlGYWK^9^eD<;$)qm6d6|(J`!nXr(j3e{p7=nzw=?iMNA{hJ(tbI&#P7f> zcRj^V>EVid29mo@7R$dRgC*1496y9mUzvm9r?FTW`#OFlX(qG8Mg2E%XZ{QD%<9Ye zF|KQ?v8MdDR5@iCEQQoHG_9n&G-`v<>EXVv#S%A}Wu!jwHm1`e;#m>aR~|_2Jzg&V z38j{%CF-PLBnGYX#x^)B zo0Vm7Ss`5)YyOO3na|luGj<%03@g`e*nER=`N|KW%!6>mtQ<}j10f#XHkjJ;f&{2# zZFJ-9rpRmu%vl7pcz%U*@f&^ite^IG?|Ksli{o(K3c~4H=(7X8?SIYE75~31gYA?~ zh^KW!s0kex;CA=mlKK4S?d|ROQS;0< gP0sXnDumAu607*qoM6N<$f{FGyf&c&j literal 0 HcmV?d00001 diff --git a/demo/Assets.xcassets/minipro_list_collect.imageset/minipro_list_collect@3x.png b/demo/Assets.xcassets/minipro_list_collect.imageset/minipro_list_collect@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..cf4dfb1fc1195e59439cd493ced049f38492528c GIT binary patch literal 4349 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 literal 0 HcmV?d00001 diff --git a/demo/Assets.xcassets/minipro_list_service.imageset/Contents.json b/demo/Assets.xcassets/minipro_list_service.imageset/Contents.json new file mode 100644 index 0000000..4a2d688 --- /dev/null +++ b/demo/Assets.xcassets/minipro_list_service.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "minipro_list_service@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "minipro_list_service@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/demo/Assets.xcassets/minipro_list_service.imageset/minipro_list_service@2x.png b/demo/Assets.xcassets/minipro_list_service.imageset/minipro_list_service@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5b5e785eeea928ebcef79b771d14b9e2ee43a411 GIT binary patch literal 2782 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 literal 0 HcmV?d00001 diff --git a/demo/Assets.xcassets/minipro_list_service.imageset/minipro_list_service@3x.png b/demo/Assets.xcassets/minipro_list_service.imageset/minipro_list_service@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..bc2db4052bb612ed1a120f6a04443fb1cb7fc82f GIT binary patch literal 4350 zcmVPx_xJg7oRCodHU3rug#Tl>anOUwy5Cg^oFNhK~f>AUNqA^~$yDaW3j7rQNs1JQA zFL}=>{$V0$p4Zd-AxaESaE~a4b$2$fhr~pEDjEbMB!)x-7$ja`xX+#G?)<*qt){xB zyQgP%_8?Bbx38uRld)6{g5k4hx#&?Z)6na|i{Bl$2G?PRA&6 z(umRE<{fSV^XAR7(%sUS&>$xYnt01;R@gHkg;OGAEtHj@lyPqdi_0qa7nN5{rhHA) zj9HVqX!`|^Yte~m#E{{`o_~J99%76} zZyR;U-2bHzqPJ`DWd^@6Wk68*@uW+0wOkfLCa)oWnM`Ax??5wioP(B+^cezae?)Xo z>(J|rS1n9e{d^U7eFQ0WxTvi1Wptxccu1Sk)>zx9X6hR!rBh>-C;2fEPwDikbNqN5 zX(UioUU8R$=n)a6Qj_iWLrrLJs((VIdBritxJOM(QCw19dArKw7w4Rx#SG(7mB;?^ zFq#anUbiV>F>toIJzhUXW%h~-I5^`A+nVdF(W-4RDJ_hQ8PFx1^itwQr|M@i(=M&8 zm;@Rc=5=@pW=eM`b`zd<(@jI&=;>$<#YNGIcU6JJj)c|t%k*ino5u=V1znvw*or$p zQ9i+9G})O#fOFQNDoG?d{uK#v$7gOZ<2UkWZr2K-h~A_~W>OVH=*_m~`b%Y*Kw(l8 zi_I$t#O%RjLm{UZMhcGGm)LYzrezuqxe098@czLw$4y{k$DQ~3xO2~c>!S_pKX&8u zqq$-%3#j-~nvB29D~Da7kQusa%T}3|59bl+4gzUwb0*4*qm^jF%sVg|nZh`uets`w z{BN4c8(W)e7iFT$kGES!!^q#k4RD>D0kyX#w%-5yoGLLYyk|AZ$hk4LD)> z(q|o`e1*p|nw8OVTcT;&Ev-$pi#>Bt63Ew4TwZkm^Pz#1q;Y<4YrHOHD4~csq8S;D zf#_2}%^F5Cn_ro~$v+A@q_`m+tjk0h}m4X98b*k~Bs4uh}BGy{>5*PABehN&;j zL~kIYOJ~m>oZNQMnwn;Uh?k)%9f+?4;#br6&=#*3V?UM6j{6!tXU?1f|NeCE`AO4! zn3=|9P`U?7huP9O42bVU3x_91lE#EBrspW;HUaz{kdZ3yv$D!-*R-E(QGF=XfJYn!oq8CO= zQ-JktJ%ln$n15&(=BpHULr88CEg8-qAA9n!`xY!%aG1RQ+%Q()JLxPi=YIt-jwzJL zC+Itn(WDIH3>{sthROANm|S1zl|fN?<yeW@lLHe zoG03vY6rkMWOV_GOvcfyjaG9iF8}c}ronGj=^~CQrK3qqX$eGn{+&l4k3b%QJOZu= z;^t(@C6*`&$u zAq<2D`x&bmQ&L`avtby|3cA~*LZo@UGcuZ1Gn2aU0Vzv28Su)G=(KXGC(Qp)7<%>s z@na|)^hueG`w0qzf$(;}*^8eJN^5DT`;>fv6vk@cQ1TH{IOr4DXehQfXQHqMS>HKZSy|PX zL|8i>o=i(uF2@hDap*<&0GMM8lgCQStN(J^NkiW!M~}=Shh2@v9=oS$W5Qu(FqXt$ zPd_I6FS0m>eBeowy+bZ$xX0MV6UIcadn09IMN0Lc9#7s$(bM*lev`A#EhS23_Er;x zo?^7rMaQX&&8C}G^2jJk`AOSXtl_SzAjN3GfDXjkW-H>o`L?#kz^PApn#`zD^Y%1a zW$c5v<)x znkL6-i=T)O4xh19gw?l^)Zc)?6N!$V^5uB^nQbahiqQ=X*XdT<>@qlV9nf%Y?Gyua zr~7SYL>21jGDJ_i+YkP1#=}=&=3b;4Z0T?#sx+#%MAMjdJ2spAT2065z-p`xT+~J1 z!!@lGbH_Jm2iyMS=J`mwSIEday9F)Ncc3{UR&n2e)tBJs@?3Doc;yvz|5y4M5E&Rb zY59vwKJ()Vl9p0E+=R3Uw`MCeLbPb#RUSlB!%T3?|*K2B?`* zTvQRDy%}{a@IF~LUEQSxLYgv(L<+t|Z=ijKdaQxyz4-)2nvBBaa}ya&;ljw!p$!cS z_ffdFpNxzqg?T9ay|%{ZR#Uh)pNx$r<50h8I%COp$J3N;L9;Tt)9}hqP{T*t z8DsSpJ=sXa?Vit0)A%pio9a4e^fod3K;REi&7!@z?v$_=5*-SS)=vOWs=*|fy1=ih z%P5{T(sC|z98hP*pRLh?oFIk6qXrFGv1ri&iIjCPCq`55bh1k$l0hg7f8~O+|*bF=FL&KR_Fv(#t$|_&_1=ea#`Z3Gper8b>lI(HNNYj7j9oZA70-1E@?R@r4%~X zIndDo==?ounbRKxM-(cW?a7Ehmbv1ugZUA`o{nD_$7vv(~vR)|YDD6tup4(-MZM>wiQ=II{T_>wl4OFk+1j6R8{Ih`)#swcoq~34uxG|NCXkC=_n!KD zAVI!f#7#Z=n**5TtmIng(M-qx?u)=mF8F2Xf|f=!UQtu;+y|V#XES#yYL0@aWizej zyFOOMB8QirjA9D|HSlrl%$gpg4@z63qtVLa4x8*_WHMCF9mApzkkfM*hyH_e4VRSY z&cgwmeS`z#XUQ`CJ&Zf*KE%xNOxaG(Lsy%o5k`5xjc#%l%6qOO9VdwfaCUk;UPrss zJ)g8S8k_JJ${-`dg98{Jttz&DVb5%i-h{Sz%`08j)0vxJSrw0&TLJhWq7ycUanT}z zz9;sXg}89*8#u}_U&te)nfnqeX8MgZFrl$sq(aX19Wqxj-I>y{+qeysN1W8m zVh8liw?e`(d<|*Z+nH%OvZbBmQ05eIfP6n;l#-wj0=3bt@%jhGjvhV`L%TXf-ZP3B z6zz&l`?NLIOR~Z_M}6M^V*h|YF>BHx)C8P2ou64 zh#JQ)9z;O!&@I-+PIiW=B}bZu#xbZb#Rob^q|+NSrn7>cy~XtR5i}ihW%({0&lU{R z?ryHB*`=n*ak59>m3#;Q-zn2Obuio^QlCOs`AV_uhBo~io6fZZ_%i>=HJtD@!rQfD z+2-X-mh83DGYDi2w3-KmdNpHFBA<0b7=*aB1w8 z)04@>CDv8SjA7q~$x*An;%J(j@uN?hXf zU|VC&+XOuMemgXi{)d1yjTU;;H->TB3JkusKf7;x6=(qvU89#g)bS+7%hX}!)CR2f z`~)}LIcJ3;<34=nw2;}BgDzV{O@9bAcYL-wWVvvJpSq%Q4ylNaxPCKUk#VWn8KiBv*&l7XSbN07*qoM6N<$f&`Op*8l(j literal 0 HcmV?d00001 diff --git a/demo/FINCustomMenuModel.h b/demo/FINCustomMenuModel.h new file mode 100644 index 0000000..194a608 --- /dev/null +++ b/demo/FINCustomMenuModel.h @@ -0,0 +1,18 @@ +// +// FINCustomMenuModel.h +// demo +// +// Created by Haley on 2020/12/17. +// Copyright © 2020 finogeeks. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface FINCustomMenuModel : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/demo/FINCustomMenuModel.m b/demo/FINCustomMenuModel.m new file mode 100644 index 0000000..d8e884a --- /dev/null +++ b/demo/FINCustomMenuModel.m @@ -0,0 +1,24 @@ +// +// FINCustomMenuModel.m +// demo +// +// Created by Haley on 2020/12/17. +// Copyright © 2020 finogeeks. All rights reserved. +// + +#import "FINCustomMenuModel.h" + +@implementation FINCustomMenuModel + +@synthesize menuId, menuIconImage, menuTitle; + +- (id)copyWithZone:(NSZone *)zone +{ + FINCustomMenuModel *model = [[FINCustomMenuModel allocWithZone:zone] init]; + model.menuId = self.menuId; + model.menuIconImage = self.menuIconImage; + model.menuTitle = self.menuTitle; + return model; +} + +@end diff --git a/demo/FINDemoClientHelper.h b/demo/FINDemoClientHelper.h new file mode 100644 index 0000000..9c77e58 --- /dev/null +++ b/demo/FINDemoClientHelper.h @@ -0,0 +1,17 @@ +// +// FINClientHelper.h +// demo +// +// Created by Haley on 2020/12/17. +// Copyright © 2020 finogeeks. All rights reserved. +// + +#import +#import + +@interface FINDemoClientHelper : NSObject + ++ (instancetype)sharedHelper; + +@end + diff --git a/demo/FINDemoClientHelper.m b/demo/FINDemoClientHelper.m new file mode 100644 index 0000000..3dea421 --- /dev/null +++ b/demo/FINDemoClientHelper.m @@ -0,0 +1,106 @@ +// +// FINClientHelper.m +// demo +// +// Created by Haley on 2020/12/17. +// Copyright © 2020 finogeeks. All rights reserved. +// + +#import "FINDemoClientHelper.h" +#import "FINCustomMenuModel.h" + +static FINDemoClientHelper *instance = nil; + +@implementation FINDemoClientHelper + ++ (instancetype)sharedHelper +{ + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + instance = [[[self class] alloc] init]; + }); + return instance; +} + +#pragma mark - FATAppletDelegate +- (void)forwardAppletWithInfo:(NSDictionary *)contentInfo completion:(void (^)(FATExtensionCode, NSDictionary *))completion +{ + NSLog(@"小程序信息:%@", contentInfo); + + // 1.如果你需要将小程序转发到自己app的聊天室,那么就根据contentInfo封装成自己IM消息,然后发送。 + + // 2.如果你需要将小程序转发到自己app的朋友圈,那么就根据contentInfo,组装信息发送给后台。 +} + +/// 小程序灰度扩展参数 +/// @param appletId 小程序id +- (NSDictionary *)grayExtensionWithAppletId:(NSString *)appletId +{ + if ([appletId isEqualToString:@"5facb3a52dcbff00017469bd"]) { + return @{@"phone":@(1234567890)}; + } + + if ([appletId isEqualToString:@"5fa214a29a6a7900019b5cc1"]) { + return @{@"token":@"xxxxxtoken"}; + } + + return @{@"key1":@"value1"}; +} + +#pragma mark - more menu +/// 更多按钮中自定义的菜单,会在页面弹出菜单时调用该api +/// @param appletInfo 小程序信息 +/// @param path 页面路径 +- (NSArray> *)customMenusInApplet:(FATAppletInfo *)appletInfo atPath:(NSString *)path +{ + NSString *appletId = appletInfo.appId; + if ([appletId isEqualToString:@"5facb3a52dcbff00017469bd"]) { + FINCustomMenuModel *favModel1 = [[FINCustomMenuModel alloc] init]; + favModel1.menuId = 1001; + favModel1.menuTitle = @"客服"; + favModel1.menuIconImage = [UIImage imageNamed:@"minipro_list_service"]; + + return @[favModel1]; + } + + if ([appletId isEqualToString:@"5fa214a29a6a7900019b5cc1"]) { + FINCustomMenuModel *favModel2 = [[FINCustomMenuModel alloc] init]; + favModel2.menuId = 1002; + favModel2.menuTitle = @"收藏"; + favModel2.menuIconImage = [UIImage imageNamed:@"minipro_list_collect"]; + + return @[favModel2]; + } + + FINCustomMenuModel *favModel1 = [[FINCustomMenuModel alloc] init]; + favModel1.menuId = 1001; + favModel1.menuTitle = @"客服"; + favModel1.menuIconImage = [UIImage imageNamed:@"minipro_list_service"]; + + FINCustomMenuModel *favModel2 = [[FINCustomMenuModel alloc] init]; + favModel2.menuId = 1002; + favModel2.menuTitle = @"收藏"; + favModel2.menuIconImage = [UIImage imageNamed:@"minipro_list_collect"]; + + return @[favModel1, favModel2]; +} + +/// 点击自定义菜单时,会触发的事件 +/// @param customMenu 自定义菜单对象 +/// @param appletInfo 小程序信息 +/// @param path 当前页面路径 +- (void)customMenu:(id)customMenu inApplet:(FATAppletInfo *)appletInfo didClickAtPath:(NSString *)path +{ + NSLog(@"自定义按钮被点击"); + if (customMenu.menuId == 1001) { + NSLog(@"客服按钮被点击"); + return; + } + + if (customMenu.menuId == 1002) { + NSLog(@"收藏按钮被点击"); + return; + } +} + +@end