OpenUrl 是 iOS 中 UIApplication 提供的一个函数,用于调用其它程序。实际上各个平台都有自己的实现,这里提供一个直接封装完的跨平台版本给大家。

 
 
 
 
 

Delphi/Pascal

 
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
uses {$IFDEF MACOS}{$IFDEF IOS}FMX.helpers.ios{$ELSE}
  sysutils,posix.stdlib{$ENDIF}{$ENDIF}{$IFDEF MSWINDOWS}windows,
  shellapi{$ENDIF}{$IFDEF ANDROID}Androidapi.JNI.App,Androidapi.JNI.JavaTypes,
  Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.Net,
  Androidapi.helpers{$ENDIF};
 
procedure OpenUrl(const AUrl: String; const ADataType: String = '');
{$IF DEFINED(ANDROID)}
var
  intent: JIntent;
begin
  intent := TJIntent.Create;
  intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  if Length(ADataType) > 0 then
    intent.setDataAndType(TJnet_Uri.JavaClass.parse(StringToJString(AUrl)),
      StringToJString(ADataType))
  else
    intent.SetData(TJnet_Uri.JavaClass.parse(StringToJString(AUrl)));
  intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
  TAndroidHelper.Activity.startActivity(intent);
{$ELSEIF DEFINED(MSWINDOWS)}
begin
  ShellExecute(0, nil, PChar(AUrl), nil, nil, SW_SHOWNORMAL);
{$ELSE}
begin
{$IFDEF IOS}
  SharedApplication.OpenUrl(StrToNSUrl(AUrl));
{$ELSE}
  _system(MarshaledAString(TEncoding.Default.GetBytes('open ' + AUrl)));
{$ENDIF}
{$ENDIF}
end;

比如我们在某个平台(Windows、OSX、Android 和 iOS 之一)调用默认的浏览器打开百度,只需要:

 
1
OpenUrl('http://www.baidu.com');

就可以了。

http://blog.qdac.cc/?p=3999

最新文章

  1. 代码的坏味道(12)——平行继承体系(Parallel Inheritance Hierarchies)
  2. html自我设计login登录
  3. 利用epoll写一个"迷你"的网络事件库
  4. Windows下几款免费C/C++开发工具简介
  5. JAVA 1.1
  6. Csstyle - 创建简洁、可维护强的 CSS 样式
  7. 【Codeforces 707C】Pythagorean Triples(找规律)
  8. jquery数组内多维对象
  9. requirejs解决异步模块加载方案
  10. LINUX VI 常用命令
  11. UITextField实现左侧空出一定的边距
  12. 看病要排队(stl)
  13. 关于ios极光推送server端注意的地方
  14. 【Qt】Qt之Tab键切换焦点顺序【转】
  15. IOS NSPredicate 查询、搜索
  16. 深入Mysql 导入导出
  17. C++:构造函数和析构函数能否为虚函数
  18. 解决Windows8系统磁盘占用太多100%或99%
  19. sublime text下载和汉化
  20. Ubuntu切换至root用户

热门文章

  1. 黑马程序员_JavaIO流(一)
  2. POJ-魔兽世界之一:备战
  3. NetAnalyzer笔记 目录
  4. 你需要知道的九大排序算法【Python实现】之快速排序
  5. 读《MacTalk·人生元编程》及Mac经常使用软件
  6. springMVC 注解版
  7. ASP.NET静态页生成方法(模板替换)
  8. ASP.NET获取用户端的真实IP
  9. Win32<CreatFile>
  10. 初探CSS