首页 文章 精选 留言 我的

精选列表

搜索[工具调用],共10012篇文章
优秀的个人博客,低调大师

Flutter Plugin调用Native APIs

作者:闲鱼技术-储睿关键词:Flutter, Flutter Plugin, Platform Channel, Method Channel, Flutter Package, Flutter插件 Flutter是Google使用Dart语言开发的一套移动应用开发框架。它不同于其他开发框架: (1)因为Flutter使用AOT预编译代码为机器码,所以它的运行效率更高。 (2)Flutter的UI控件并没有使用底层的原生控件,而是使用Skia渲染引擎绘制而成,因为不依赖底层控件,所以多端一致性非常好。 (3)Flutter的扩展性也非常强,开发者可以通过Plugin与Native进行通信。 闲鱼开发Flutter过程中,经常会需要各种Native的能力,如获取设备信息、使用基础网络库等,这时会使用Plugin来做桥接。本文将对P

优秀的个人博客,低调大师

swift调用支付宝

开发环境xcode7.1 运行环境 IOS9.1 到支付宝面面下载IOS的移动支付功能的SDK(Android和IOS是同一个zip文件下) http://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1 然后申请商家支付宝,得到相应的private_key和partner,seller IOS的资料在SDK文件夹的“客户端demo”下的IOS文件夹下 复制AlipaySDK.bundle和AlipaySDK.framework到项目下 复制IOS Demo下的两个.a文件到项目下 复制iOS Demo下的openssl文件夹,Util文件夹,Order.h,Order.m(省得自己在swift中定义订单)文件到项目中 在xcode中创建一个项目AlipayDemo,在项目中Add Files to AlipayDemo所有的.a文件和openssl文件夹,Util文件夹,Order.h,Order.m,此时系统提示创建头文件,选择允许创建(可以手动添加一个.h文件作为头文件) 如果在基于IOS9.0编译,在info.list中添加如下xml代码(info.list以SourceCode形式打开) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 < key >NSAppTransportSecurity</ key > < dict > < key >NSExceptionDomains</ key > < dict > < key >alipay.com</ key > < dict > <!--Includetoallowsubdomains--> < key >NSIncludesSubdomains</ key > < true /> <!--IncludetoallowinsecureHTTPrequests--> < key >NSTemporaryExceptionAllowsInsecureHTTPLoads</ key > < true /> <!--IncludetospecifyminimumTLSversion--> < key >NSTemporaryExceptionMinimumTLSVersion</ key > < string >TLSv1.0</ string > < key >NSTemporaryExceptionRequiresForwardSecrecy</ key > < false /> </ dict > </ dict > </ dict > 增加头文件 Util中的base64.h,openssl_wrapper.h添加#import <Foundation/Foundation.h>,给支付宝AlipaySDK.h添加#import <Foundation/Foundation.h>和#import<UIKit/UIKit.h> 设置Build Settings 查找Bitcode,把Yes改成No 查打Header SearchPaths,点小+号,添加$(SRCROOT)/AlipayDemo 在info的URL Types中添加一个GSWAlipayDemo的节点,以备代码中Order的appScheme使用。 代码实现 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 importUIKit class ViewController:UIViewController{ override funcviewDidLoad(){ super.viewDidLoad() let but=UIButton(type:UIButtonType.System); but.setTitle(" 支付",forState:UIControlState.Normal); but.backgroundColor=UIColor.greenColor(); but.frame=CGRect(x:10,y:100,width:100,height:30); but.addTarget(self,action: "click" ,forControlEvents:UIControlEvents.TouchUpInside); self.view.addSubview(but);} funcclick() { AliplayFunc(); print( "click" ) } var TicketTotalprice:Float=0.01; //支付金额 var seller:String= "支付宝申请的seller" ; var partner:String= "支付宝申请的partner" ; var privateKey:String= "替换支付申请的privet_key" ; funcAliplayFunc(){ let Orders=Order() Orders.partner=partner Orders.seller=seller Orders.productName= "ProductName" ; Orders.productDescription= "thisisagoods" ; Orders.amount=NSString(format: "%.2f" ,TicketTotalprice) as String; //(价格必须小数点两位) Orders.tradeNO= "DJ0000000001" ; Orders.notifyURL= "http://selftweb.com" ; Orders.service= "mobile.securitypay.pay" ; Orders.paymentType= "1" ; Orders.inputCharset= "utf-8" ; Orders.itBPay= "30m" ; Orders.showUrl= "m.alipay.com" ; let appScheme= "GSWAPayDemo" ; //在 let orderSpec=Orders.description; let signer=CreateRSADataSigner(privateKey); let signedString=signer.signString(orderSpec); let orderString= "\(orderSpec)&sign=\"\(signedString)\"&sign_type=\"RSA\"" ; AlipaySDK.defaultService().payOrder(orderString,fromScheme:appScheme,callback:{(resultDic)->Void in print( "reslut=\(resultDic)" ); if let Alipayjson=resultDic as ?NSDictionary{ let resultStatus=Alipayjson.valueForKey( "resultStatus" ) as !String if resultStatus== "9000" { print( "OK" ) } else if resultStatus== "8000" { print( "正在处理中" ) self.navigationController?.popViewControllerAnimated( true ) } else if resultStatus== "4000" { print( "订单支付失败" ); self.navigationController?.popViewControllerAnimated( true ) } else if resultStatus== "6001" { print( "用户中途取消" ) self.navigationController?.popViewControllerAnimated( true ) } else if resultStatus== "6002" { print( "网络连接出错" ) self.navigationController?.popViewControllerAnimated( true ) } } }) } override funcdidReceiveMemoryWarning(){ super.didReceiveMemoryWarning() //Disposeofanyresourcesthatcanberecreated. } } Demo源代码 本文转自桂素伟51CTO博客,原文链接:http://blog.51cto.com/axzxs/1706890,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册