Delphi for iOS开发指南(7):在iOS应用程序中使用WebBrowser组件

在FireMonkey iOS应用程序中使用WebBrowser

在iOS平台上,FireMonkey使用TWebBrowser组件来封装Web Browser。这篇文单讲述了如何在iOS上创建一个简单的FireMonkey浏览器程序。

第一步:设计界面

 

1.        选择File>New>FireMonkey Mobile Application – Delphi>BlankApplication。

2.        在Tool Palette中选择TToolBar组件,然后拖到FireMonkey Mobile Form Designer上去。

要找到TToolBar,在ToolPalette的搜索框中输入开头的几个字母(“tool”):

3.        在你拖好控件之后,你就可以在Form Designer的顶部看到这个TComboBox组件了:

4.        在Tool Palette中选择TButton组件,并拖放到ToolBar上面。

5.        在Mobile Form Designer上选中Button组件,然后在Object Inspector中的StyleLookup属性中选择priortoolbuttonbordered。

Tbutton的priortoolbuttonbordered这个StyleLookup值在iOS Style中会添加一个返回按钮标签:

更多关于在FireMonkey iOS应用程序中选择Style的细节,请查看“Delphi for iOS开发指南(4):在iOS应用程序中使用不同风格的Buttin组件”。

6.        在Tool Palette中选择TEdit组件并拖放到ToolBar上面。确保Edit控件的尺寸填充ToolBar的空余区域:

7.        在Tool Palette中选择TWebBrowser组件并拖放到窗体上面。

8.        在Mobile Form Designer上选中WebBrowser组件,然后在Object Inspector中的Align属性设置为alClient。

在完成这些步骤后,窗体看出来应该是如下图所示:

第二步:编写一个事件处理过程,当用户更改URL文本框时打开一个网页

与桌面平台不一样的是,Mobile Device使用如下图所示的Virtual Keyboard来输入文字。用户可以通过点击“Done”或“Return”来完成这个动作。

FireMonkey提供一些事件处理过程来处理用户操作的响应。在“Done”按钮按下的时候,FireMonkey框架发送一个OnChange事件给TEdit控件。另一方面,“Return”按钮没有相应的事件。在这节中,你实现事件处理过程来同时支持这两种情况。

实现打开网页的共用方法

在实现事件处理过程之前,首先实现一个打开网页的共用方法,使用Edit控件的Text属性。

1.  在Code Editor中,创建下面代码:

  1. procedure OpenURL; next to{ Private declarations }

2.按下CTRL+SHIFT+C来在文件的末尾创建一个占位符:

3.按下面的代码片断来实现这个OpenURL方法:

实现OnChange事件的事件处理过程

1.  在Mobile FormDesigner中,选中Edit控件,然后在Object Inspector(Events页),双击OnChange事件旁边的空白区域来创建事件处理过程。

Object Inspector创建一个名为Edit1Change的事件处理过程:

2.添加如下代码来实现这个事件处理过程:

实现返回按钮的事件处理过程

为了给WebBrowser实现返回按钮,你可以简单的调用WebBrowser组件的GoBack方法:

基本的功能已经实现了。尝试在iOS Simulator或iOS Device中运行你的应用程序。

第三步:为Web Browser应用程序选择合适的键盘

在运行你的第一个WebBrowser应用程序之后,你会发现虚拟键盘不是很合理。

iOS提供以下几种虚拟键盘:

在Edit控件的KeyboardType属性中选择vktURL做为合适的虚拟键盘:

Delphi for iOS开发指南(7):在iOS应用程序中使用WebBrowser组件的更多相关文章

  1. Delphi for iOS开发指南(8):在iOS应用程序中使用Tab组件来显示分页

    Delphi for iOS开发指南(8):在iOS应用程序中使用Tab组件来显示分页 在FireMonkey iOS应用程序中的Tab Tab由FMX.TabControl.TTabControl定 ...

  2. Delphi for iOS开发指南(6):在iOS应用程序中使用ComboBox组件来从列表中选择某一项

    http://blog.csdn.net/delphiteacher/article/details/8924110 Delphi for iOS开发指南(6):在iOS应用程序中使用ComboBox ...

  3. Delphi for iOS开发指南(5):在iOS应用程序中使用Calendar组件来选择日期

    http://blog.csdn.net/delphiteacher/article/details/8923519 在FireMonkey iOS应用程序中的Calendar FireMonkey使 ...

  4. Delphi for iOS开发指南(4):在iOS应用程序中使用不同风格的Button组件

    http://blog.csdn.net/DelphiTeacher/article/details/8923481 在FireMonkey iOS应用程序中的按钮 FireMoneky定义了不同类型 ...

  5. Delphi for iOS开发指南(3):创建一个FireMonkey iOS应用程序

    http://cache.baiducontent.com/c?m=9d78d513d9d431a94f9d92697d60c015134381132ba1d0020fa48449e3732b4b50 ...

  6. Delphi for iOS开发指南(1):在Mac上配置你的开发环境

    http://cache.baiducontent.com/c?m=9d78d513d99516f11ab7cf690d678c3b584380122ba7a0020fd18438e4732b4050 ...

  7. 《iOS开发指南》要改iOS8版本了,听听您的意见?

    <iOS开发指南>要改iOS8版本了,听听您的意见?参加问卷同学均可获得智捷课堂50元代金卡一张,同时抽取一名同学赠送即将出版的基于iOS8的<iOS开发指南>一本,欢迎大家填 ...

  8. 《iOS开发指南》正式出版-源码-样章-目录,欢迎大家提出宝贵意见

    智捷iOS课堂-关东升老师最新作品:<iOS开发指南-从0基础到AppStore上线>正式出版了 iOS架构设计.iOS性能优化.iOS测试驱动.iOS调试.iOS团队协作版本控制.... ...

  9. 视频聊天插件:AnyChat使用攻略之iOS开发指南

    AnyChat使用攻略之iOS开发指南 这套攻略主要指导刚开始使用AnyChat SDK For iOS的同学,快速搭建SDK环境,和实现音视频开发流程. (需要工程案例文件可联系我们) 在iOS平台 ...

随机推荐

  1. List<?>和List<T>的区别

    是java泛型的两种用法:List<T>是泛型方法,List<?>是限制通配符 List<T>一般有两种用途:1.定义一个通用的泛型方法.伪代码: public i ...

  2. all any some

    SQLServer中有三个关键字可以修改比较运算符:All.Any和Some,其中Some和Any等价. 他们作用于比较运算符和子查询之间,作用类似Exists.not exists.in.not i ...

  3. print 不换行

    [print 不换行] 参考:http://zhidao.baidu.com/link?url=-qC2RyT5_GWzW_N-SyqJYgegVt2sSXwmMWGvHfk_4MjErhm_Pj23 ...

  4. JSP页面与JSP页面之间传输参数出现中文乱码的解决方案

    在学习编程初期JSP与JSP页面之间传输参数大多数都是使用这样的方式 index.jsp?id=*&name=* 这样的传输方式实质上是一种GET传输方式, 那如果出现了中文乱码, 解决方法其 ...

  5. 用Git发布版本笔记

    1.首先,如果是发布的Develop分支,先从master建立HotFix分支,提交到git并指定关联关系 (git branch --set-upstream-to=D..) 2.对H分支进行功能完 ...

  6. 第七章 二叉搜索树 (d1)AVL树:重平衡

  7. suse11 sp4(虚拟机) 能ping通主机,但是主机ping不通suse虚拟机

    sese的防火墙没关. 查看防火墙状态: rcSuSEfirewall2 status(必须是root账户,sudo都不行) 关闭防火墙:rcSuSEfirewall2 stop 事实上,防火墙有时候 ...

  8. 找不到reportviewer控件在哪儿

    請自行加入ReportViewer(9.0)到工具箱之中. 如下圖,

  9. discuz回贴通知插件实现-插件的多语言

    如果涉及到页面的展示,模板,提示信息,通常会   1.建立好需要的文字的翻译 在disucz的data/plugindata目录创建一个插件所使用的语言文件,命名方式为: 插件标识符.lang.php ...

  10. .NET Utils 辅助类

    using System;using System.Diagnostics;using System.IO;using System.Reflection;using System.Runtime.I ...