zoukankan      html  css  js  c++  java
  • ShellExecute的跨平台实现OpenUrl

    OpenUrl 是 iOS 中 UIApplication 提供的一个函数,用于调用其它程序。实际上各个平台都有自己的实现,这里提供一个直接封装完的跨平台版本给大家。
     
    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;
     
    https://blog.qdac.cc/?tag=openurl
  • 相关阅读:
    JS面向对象的程序设计
    dede 调用自定义图片时新增了很多html结构的解决方法
    dedecms arclist 栏目文章列表调用标签
    POJ 3145 Harmony Forever
    URAL K-based Numbers(1-3)
    POj 3420
    Ural 1004 FLOYD最小环问题
    noip2016提高组总结
    POJ 2566 Bound Found
    POJ 1639度限制生成树
  • 原文地址:https://www.cnblogs.com/findumars/p/6601924.html
Copyright © 2011-2022 走看看