分享

OrangeUI

 美好生活谷 2017-03-04

OrangeUI-助您快速开发漂亮实用的APP

2013年EMB发布了XE4,开始了Delphi可以直接开发苹果APP的篇章,

同时,OrangeUI就开始了紧锣密鼓的研发,一直到了2017年,耗时四年,

期间EMB也发布了XE5、XE6、XE7、XE8、D10 Seattle,直到现在的D10.1 Berlin版,

Delphi已经可以一套代码,同时开发很稳定的IOS和Android两个平台的APP了,

OrangeUI也从1.0版本慢慢发展到如今的1.66版本。

 

本人亲身用Delphi+OrangeUI开发了多款APP,其中有企业管理类、即时通迅类、应用工具类等,

我从这些项目中积累了很多经验,找寻出了做界面当中的痛点,并把它们封装成简单的控件,

因此,OrangeUI几乎包含了APP开发所用到的所有UI控件,让一切变得很容易,

 

比如,OrangeUI原创了ListView的设计面板模式,可以直接在面板上拖放要显示的元素(图片、文本、按钮、输入框等),

满足了手机APP上快速实现各种多样复杂列表的需求,

再者,OrangeUI上的每个控件都只需要设置简单的属性就可实现您想要达到的效果,

而不是像EMB自带控件,改个按钮的背景色需要设计复杂的Style。

创建及加载速度快,因为OrangeUI控件直接继承TControl,非TStyledControl,

不需要像自带控件那样从默认StyleBook中加载元素

 

不少用户使用Delphi+OrangeUI开发了多款美观大方的APP,上架到苹果AppStore的也有很多,

在这APP开发盛行的时期,为了让更多Delphi开发者更方便的开发APP,搭建APP界面,

把更多精力投入到业务和功能上的研发,OrangeUI决定免费给Delphi开发者使用。

 

那有人就要问了,既然免费了,那我靠什么赚钱,OrangeUI会不会就不维护了?

答案是,我通过提供免费的OrangeUI,很好的APP开发技术支持,来让更多人用起来,

开发更多的APP,大家赚钱了,认为OrangeUI值,再来对OrangeUI相应的服务付费。

我也承接朋友介绍的APP项目,通过开发项目,不断的完善OrangeUI,保持一个良性的循环。

 

俗话说,酒香不怕巷子深,OrangeUI散不出香味,为了推广只能多打些广告,打扰到各位,感到抱歉,

有什么好的意见建议,也可以直接回复我。

 

通过OrangeUI,您可以快速及稳定的实现如下功能,并且全部免费:

1.APP主页九宫格菜单,在主流APP中经常能够见到,OrangeUI只需要一个控件,而不是Imaget和Label堆出来实现。

2.广告图片轮播功能,并且是可以跟随手指滑动切换,这是目前别的控件还做不到的。

3.列表ListView支持直接设置图片的URL,通过底层的多线程下载功能,可以轻松实现异步加载图片,并且不会感觉到卡顿。

4.列表框ListView自带下拉刷新、下拉加载的功能,在手机上加载2w条数据只需2秒。

5.APP上数据呈现以ListView为主,列表框ListView支持的设计面板模式,可以在设计面板上添加任意数目的控件,排列好布局,各种样式轻松搞定。

6.实现稳定的页面切换效果,让您的APP如原生般的用户体验(APP最注重的就是用户体验)。

7.各种通用的界面,如等待框,对话框,菜单框,拍照菜单框,选择框等。

8.可以快速生成IOS和Android平台下所用到的各种尺寸的程序图标和启动界面图片。

9.网上商城、好友聊天、新闻浏览、外贸验货、平板点单等示例,包含全部源码的。

10.可以手势切换的分页控件,加入到您的APP中可以极大的方便用户进行操作。

11.稳定灵活的Frame开发方案(发布会李维老师推荐),可以很好的将复杂的主窗体分解成四、五个小页面,加快页面的截入速度,减少内存占用,并且按返回键自动返回上一页的处理,让你打造出高效的APP。

12.开源的微信接口、微博接口、阿里接口、支付宝支付、微信支付、推送功能源码,让你的APP更强大。

13.简单实用的图片HTTP上传下载客户端和服务端(IndyHttpServer)的示例源码。

14.发朋友圈、查看朋友圈的客户端和后台服务端(DataSnap)的示例源码。

15.按钮在ScrollBox上用手指滑动不会触发点击事件。

16.编辑框在ScrollBox上用手指滑动时不会触发输入事件,并已自动处理虚拟键盘显示/隐藏事件,不会挡住编辑框。

17.列表ListView支持在设计时添加Item并能即时预览到效果,目前自带和别的控件都做不到的。

18.OrangeUI的用户目前已经超过200名,用户开发的APP也不下百个,不少都上架到AppStore,腾讯应用宝等市场。

19.每个控件配备专门的DEMO和文档教程,使用起来更轻松。

20.提供专门的OrangeUI技术支持QQ群(群号:10900297),也可以加我QQ452330643,提供专业的APP开发支持。

21.定期一至两个月更新一次,不断添加新的控件适应新的趋势,以及新的实用示例。

 

OrangeUI控件安装包下载地址:

https://pan.baidu.com/s/14i84u

OrangeU控件使用教程、演示APK下载地址:

https://pan.baidu.com/s/14i84u

微信支付,支付宝支付,推送接口源码下载地址:

https://pan.baidu.com/s/14i84u

本人联系方式:

QQ:452330643

Email:ggggcexx@163.com

Phone:18957901025

Tel:0579-82374410

OrangeUI技术支持QQ群:10900297

 


用户使用OrangeUI开发的APP典型如下:

新闻客户端             RyMobileOS         进销存              商开水务

新博肋手                金贸通                    常州农业通       验货管理

动监网考                移动POS                粤警党风           OR平台

芝麻开门                族康     

 

 

篇幅有限,并未列出用户提供的所有APP,每个案例展示三张图片:

MOON新闻客户端,网友[Component]提供:


 

族康,网友[时间不会停留]提供:


 

进销存,网友[阿春]提供:


 

商开水务,网友[李彬]提供:

https://itunes.apple.com/cn/app/商开水务/id1187838016?mt=8


 

 

新博助手,网友[清风]提供:

https://itunes.apple.com/cn/app/新博助手/id1141385169?mt=8


 

扶贫信息管理平台,网友[SUN]提供:


 

 

RyMobileOS,网友[取精人]提供:

 

 

商会通,网友[Jason]提供:


 

OR平台,网友[老卡]提供:


 

动监网考,网友[红鱼儿]提供:

 


 

金贸通,网友[一二一]提供:

https://itunes.apple.com/cn/app/金贸通移动app/id1112070289?mt=8


 

常州农业通,本人提供:

https://itunes.apple.com/cn/app/常州农业通/id963455830?mt=8


 

芝麻游,本人提供:

https://itunes.apple.com/cn/app/芝麻游/id791054262?mt=8


 

粤警党风,本人提供:

https://itunes.apple.com/cn/app/粤警党风/id1145875740?mt=8


 

验货管理,本人提供:

https://itunes.apple.com/cn/app/孚盟验货管理/id1086314223?mt=8


 

移动pos点单,本人提供:

https://itunes.apple.com/us/app/移动pos点单/id1209904773?l=zh&ls=1&mt=8

OrangeUI开发的APP还有很多很多,期待大家加入APP的开发阵营。

 

 

下载地址(百度网盘):https://pan.baidu.com/s/14i84u

附带有控件安装教程,使用说明,及示例.

  1. 内置TSystemHttpControl(uBaseHttpControl.pas)来下载图片,

Image下载URL图片不需要再添加uIdHttpControl.pas或uNativeHttpControl,

也不需要手动再指定DownloadPictureHttpControlClass

  1. 升级DownloadPictureManager,

DrawPicture(如Image.Properties.Picture)和ListBox的图标(如ListBoxItem.Icon) 默认使用全局的GlobalDownloadPictureManager来下载图片的

可以为DrawPicture指定DownloadPictureManager,

如果DrawPicture之前设置过URL,再设置新的URL之后,要等到新URL下载完成之后图片才会切换显示过来,

可以为ListBox指定DownloadPictureManager,这样可以把ListBox的图标单独放在一个文件夹里面,

可以设置DownloadPictureManager在下载图片时的四种状态图片(等待下载,下载中,下载失败,图片出错),

具体请查看OrangeUIDemo中的DownloadPictureManager示例和OrangeViewNews示例。

  1. ListBox.Prop.Items增加搜索Item的方法FindIteByDetail,FindItemByDetail*
  2. 添加一个简单的图片上传下载客户端和服务端的简单示例
  3. 添加一个微信朋友圈客户端和服务端的简单示例

Demo下载地址:

https://pan.baidu.com/s/14i84u 

 

加入支付宝开发者平台,

https://open.alipay.com

签约移动支付服务
访问https://b.alipay.com/order/productSet.htm

有一个”移动支付”产品,点击右下解的”了解详情”

再点击”在线申请”
提交营业执照以及需要的文档
通过之后可以查看到已经签约的产品:
https://b.alipay.com/order/signManage.htm?channel=ent

点击上方的“查看PID和Key”获取商户的PID,

在开放平台应用管理页面:
https://openhome.alipay.com/platform/appManage.htm
创建一个应用,并配置应用信息:

点击应用右下角的”查看”,

点击应用环境,配置应用网关和RSA密钥,
应用网关是用户支付一笔订单,支付宝会向此网关Post这笔订单的详情与状态(下订单,取消订单,支付成功)。

使用OpenSSL配置好RSA公钥和私钥,生成KCS8的私钥
https://doc.open.alipay.com/doc2/detail?treeId=58&articleId=103242&docType=1
RSA密钥生成命令
生成RSA私钥
openssl>genrsa -out rsa_private_key.pem 1024
生成RSA公钥
openssl>rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
将RSA私钥转换成PKCS8格式
openssl>pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt

注意:“>”符号后面的才是需要输入的命令。

PKCS8格式的字符串是我们代码里面要用的,用来加密
而生成的这个rsa_public_key.pem里面是我们要上传到支付宝的开发者公钥

在下面设置:

IOS平台使用方法:
布署如下文件

Delphi 10 Seattle 下,把OrangeUI_IOS9Fix.exe, IOSPlistConfig.txt拷贝到工程目录,并设置Build Events:
$(PROJECTDIR)\OrangeUI_IOS9Fix.exe “$(OUTPUTPATH).info.plist”

这个IOSSchema必须和IOSPlistConfig.txt中的CFBundleURLSchemes对应起来,

不然支付完不能返回到您自己的应用中。
注意:这里的URL Schemes中输入的alisdkdemo,为测试demo,实际商户的app中要填写独立的scheme,建议跟商户的app有一定的标示度,要做到和其他的商户app不重复,否则可能会导致支付宝返回的结果无法正确跳回商户app。

Delphi 10.1 Berlin下面,可以直接编辑源码目录下面的info.plist.TemplateiOS.xml,
在最后的之前,插入IOSPlistConfig.txt中的xml片段,

Android平台下使用方法:

添加JAR

设置权限:

配置AndroidManifest.template.xml

也就是加上下面这一段XML:
<>
android:name=”com.alipay.sdk.app.H5PayActivity” android:configChanges=”orientation|keyboardHidden|navigation” android:exported=”false”
android:screenOrientation=”behind” >

<>
android:name=”com.alipay.sdk.auth.AuthActivity” android:configChanges=”orientation|keyboardHidden|navigation” android:exported=”false”
android:screenOrientation=”behind” >

Demo下载地址:

https://pan.baidu.com/s/14i84u 

 微信开发平台官方地址:

Open.weixin.qq.com

先申请成为微信开放平台开发者(:不是公众号平台)

再创建一个应用,

需要配置包名,Android平台下还需要配置应用签名,在下面会讲到:

然后获取移动支付的能力

提交所需要的资料,

移动支付申请成功后会收到一封邮件,

上面有微信商户平台的商户ID,以及登录账号,

用这个账号登陆商户平台:

Pay.weixin.qq.com

接下来在电脑上安装证书:

安装完之后在API安全那里设置商户密钥

IOS平台微信SDK的使用方法:

SDKManager中给IOS SDK添加SystemConfigurationFramework

微信SDK的静态链接库为libWeChatSDK.a

Delphi 10 Seattle 下,把OrangeUI_IOS9Fix.exe, IOSPlistConfig.txt这两个文件拷贝到工程目录下,

并且设置BuildEvents:

$(PROJECTDIR)\OrangeUI_IOS9Fix.exe “$(OUTPUTPATH).info.plist”

IOSPlistConfig.txt内容如下:

修改IOSPlistConfig.txt,将里面的APPID替换成自己的APPID

注意,上面红框中的替换成您开放平台中应用的APPID,

不然支付成功不能跳转回你的APP,

Delphi 10.1 Berlin下面,可以直接编辑源码目录下面的info.plist.TemplateiOS.xml,

在最后的之前,插入如上的xml片段,

编译器中加以下参数,不然会闪退:

-ObjC -all_load

3264位都需要设置

“`

LSApplicationQueriesSchemes

    mqqOpensdkSSoLogin

    mqzone

    sinaweibo

    alipayauth

    alipay

    safepay

    mqq

    mqqapi

    mqqopensdkapiV3

    mqqopensdkapiV2

    mqqapiwallet

    mqqwpa

    mqqbrowser

    wtloginmqq2

    weixin

    wechat

CFBundleURLTypes

   

        CFBundleURLName

        weixin

        CFBundleURLSchemes

       

            wx7e4aed8e24992dfc

       

   

“`

Android版微信接口使用方法:

先来介绍一下如何用Eclipse生成jar,

比如我们的包名是:com.embarcadero.FairySport

打开Eclipse->File->New->Android Project

输入ProjectName(工程名),ApplicationName(程序名),PackageName(包名),

接下来我们创建wxapi.jar所需要的包com.embarcadero.FairySport.wxapi

File->New->Package

再创建我们需要的类,File->New->Class:

分别是OnWeixinListener, WXEntryActivity, WXPayEntryActivity:

添加完之后并写上相应的代码,然后我们再导出jar:

选中我们的wxapi这个Package,右键,导出,选择Java结点下面的JAR file,

选择好jar生成的路径,

 

点击Finish,就会生成jar了,

最后,用JarOrClass2Pas工具生成wxapi.jarDelphi接口文件

比如我的包名是com.ggggcexx.orangeui

那么需要用Eclipse创建一个wxapi.jar,包含com.ggggcexx.orangeui.wxapi.WXEntryActivity,

因为调用微信接口发完消息会向WXEntryActivity发送调用成功还是失败,

然后再配置AndroidManifest.template.xml,

也就是添加这么一段:

        <>

            android:name=”.wxapi.WXEntryActivity”

            android:label=”%activityLabel%”

            android:exported=”true”>

       

再设置需要的权限

如果要使用支付的话,

wxapi.jar中还需要包含com.ggggcexx.orangeui.wxapi.WXPayEntryActivity,

因为调用微信支付接口支付之后会向WXPayEntryActivity发送调用成功还是失败,

还要加

        <>

            android:name=”.wxapi.WXPayEntryActivity”

            android:label=”%activityLabel%”

            android:exported=”true”>

       

在工程的Libraries中添加libammsdk.jar, wxapi.jar

创建签名文件

把红框中的md5(去掉冒号)设置到微信平台中

 

下载地址(百度网盘):https://pan.baidu.com/s/14i84u

附带有控件安装教程,使用说明,及示例.

1.修复连续点击造成不能返回上一个Frame的问题

2.修复Label垂直绘制时显示不全的问题

3.修复PullLoadPanel拖动的时候会盖住列表项的问题

4.修复ScrollBox上的Edit滚动时ScrollBox不会滚动的问题

5.修复ListBox在列表项高度不固定的时候绘制慢的问题

6.付费版增加两个示例程序供学习(企业管理+平板点单)

7.示例程序重新整理(TreeView,PullLoadPanel等)

8.内部结构调整(ButtonGroup,ListBox,ListView,DBGrid,TreeView统一使用ListLayoutManager来布局,后续PageControl的表头等都会统一,减少无用代码,能增强原有控件的功能)

下载地址(百度网盘):https://pan.baidu.com/s/14i84u

附带有控件安装教程,使用说明,及示例.

1.在控件面板中加入了TClearEditButton等,可以直接把它们放入FMXEdit控件中

2.完善了PullLoadPanel、PageControl、NotifyNumberIcon、FrameImage、RoundImage、MultiColorLabel的教程

3.ListBox平拖列表项功能增强与完善(可以手动开始、结束平拖列表项,平拖时不会影响ListBox的垂直滚动)

4.修复下拉PullLoadPanel的时候会挡住ListBox顶部的组分隔线的问题

5.修复移动平台下自动下载的图片不会缓存的问题(感谢网友[.μρ2ц清风])

6.直接在ScrollBoxContent上放OrangeUI控件就能滚动,不需要再设置ParentMouseEvent属性(控件层级不要太深)

7.修复RadioButton在点击的时候能取消勾选的问题(感谢网友[清风])

8.修复ComboBox的Text属性能直接获取到文本

9.修复RoundImage在某些电脑上会黑屏的问题

10.TreeView增加LevelRightIsFitControlWidth属性,当设置了LevelLeftOffset的时候,节点保持右对齐

LevelRightIsFitControlWidth为False

LevelRightIsFitControlWidth为True

下载地址(百度网盘):https://pan.baidu.com/s/14i84u

附带有控件安装教程,使用说明,及示例.

  1.  NotifyNumberIcon的素材添加LongPicture,

当提醒数字为1位数时(1~9),使用Picture当作背景,

为两位数时(10~99),使用LongPicture当作背景,避免拉伸产生变形

  1. Frame切换增加简单的效果(HideFrame,ShowFrame中都加入了是否使用切换效果的参数)
  2. 增加教程和示例 (Frame中虚拟键盘简单处理示例2,FrameHistory的使用说明,DownloadPictureManager控件的使用说明)
  3.  修复ComoboBox在设计时有黑色小箭头的Bug
  4. ComboEdit加入InScrollBox属性
  5. 去掉了Edit的BorderMargins属性
  6. 加入了OrangeUI类结构的帮助文档

下载地址(百度网盘):https://pan.baidu.com/s/14i84u

附带有控件安装教程,使用说明,及示例.

1.去掉了ScrollBar的StrictScrollPrecision属性,加入了StrictScrollAngle属性(用于控制严格拖动的角度)。

2.去掉了ItemDesignerPanel 的EnabledDesignTimePreviewBinding属性(直接启用设计预览功能)

3.修复了ListView中Item.Visible为False时没有隐藏的Bug(感谢网友一二一)

4.去掉了ListBox的ItemSizeCalcType属性,并将此属性名称替换为ItemHeightCalcType

5.去掉了PageControl素材的IsDrawBackground和IsDrawTabHeaderPicture属性

6.DrawParam在设计时显示所对应的参数名称

7.将ListBox,ListView,TreeView的OnClickItem事件类型由TNotifyEvent转换成TClickItemEvent

8.TreeView的素材添加ParentItemMaterial(父节点列表项绘制素材)

9.去掉了TabSheet素材的IsDrawBackground属性

9.去掉了ScrollBar素材的IsDrawBackground属性

10.将ListBox,ListView,TreeView的OnClickItem事件由TNotifyEvent(Sender:TObject)

转换为TClickItemEvent(Sender:TSkinItem),记得需要引用uSkinItems单元

11.加入ListBox自动下载图标的功能,记得添加uNativeHttpControl .pas或uIdHttpControl.pas

(只需要设置Icon.Url,在绘制此Item的时候,会启动线程自动下载图片,下载完自动刷新,看ListBox的示例,或新闻的示例)

12.加入下载图片管理DownloadPictureManager组件,记得添加uNativeHttpControl .pas或uIdHttpControl.pas

(看DownloadPictureManager的示例)

13.OrangeProjectCommon文件夹已更新(主要是FMX.Platform.iOS.pas等)

下载地址(百度网盘):https://pan.baidu.com/s/14i84u

附带有控件安装教程,使用说明,及示例.

1.修复列表项属性编辑器在编辑ListBoxItem的SubItems属性时挡住StringList编辑器的问题

2.废弃ItemDesignerPanel的EnabledDesignTimePreviewBinding属性

3.完善了教程(加入了 绑定ListBoxItem.SubItems、PageControl效果设置、ScrollBox处理虚拟键盘遮挡)

4.加入了验货APP示例(仅供学习)

下载地址(百度网盘):https://pan.baidu.com/s/14i84u

附带有控件安装教程,使用说明,及示例.

1.完善DrawPanel签名控件,加入撤消和恢复的功能
2.加入RoundImage控件,可以在图片上绘制空心圆角矩形

3.修复了当TabSheet绑定NotifyNumberIcon,更改NotifyNumberIcon的Number,不立即刷新的问题,感谢网友HENKEL
4.应客户要求,ListBox等加入了长按列表项的OnLongTapItem的事件
5.设计时,ListBox的列表项设计器会挡住图片选择框的问题
6.ScrollBar加入了Mobile的ComponentType,如需使用,请作以下设置

7.ScrollBar修复滚动时有时候会自动隐藏的问题
8.ScrollBar默认皮肤

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多