Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Telefondan Arama yapmak
#1
Merhabalar, 

Aşağıdaki kodla Android le arama yapabiliyorum. ama IOS kısmında hiçbişey olmuyor. 
Hatada olmuyor aramada yapmıyor.
Sizce nerde hata yapıyorum?

procedure TAnaF.TelefonlaAra(Telefonx: String);
var
FPhoneDialerService: IFMXPhoneDialerService;
FCallPhonePermission: string;

begin
 TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(FPhoneDialerService));


 {$IFDEF ANDROID}
 FCallPhonePermission := JStringToString(TJManifest_permission.JavaClass.CALL_PHONE);

   if Telefonx <> '' then
     PermissionsService.RequestPermissions([FCallPhonePermission], procedure(const APermissions: TClassicStringDynArray; const AGrantResults: TClassicPermissionStatusDynArray)
   begin
     if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then

       FPhoneDialerService.Call(Telefonx)
     else
     begin
      TDialogService.ShowMessage('Telefon açma izniniz yok!');
     end;
   end);

  {$ENDIF}

  {$IFDEF IOS}

  if Assigned(FPhoneDialerService) then
    if Telefonx <> '' then
      begin

         FPhoneDialerService.Call(Telefonx);
      end;
  {$ENDIF}




end;
Cevapla
#2
Cihazda mı test ediyorsunuz yoksa simulatörde mi? Arama işlemi cihazda çalışmaktadır. Simulatörde çalışmaz.
Cevapla
#3
Merhaba @barissagir
Apple Developer'da telefon aramaları API'sinin CallKit olduğu URL şeklinde çağırılacağı anlatılıyor: 
https://developer.apple.com/documentation/callkit/ 
https://developer.apple.com/forums/thread/748156

Kastri'de https://github.com/DelphiWorlds/Kastri/t.../Demos/SMS ios sms gönderme demosu ve CallKit kütüphanesi https://github.com/DelphiWorlds/Kastri/b...allKit.pas mevcut

Ayrıca Swift örneği mevcut: https://stevenpcurtis.medium.com/create-...c07fd0e03e
Buradaki swift kodları https://gemini.google.com ile Delphi'ye çevirmeyi deneyebilirsin
Cevapla
#4
(21-06-2025, Saat: 19:18)bakyuz Adlı Kullanıcıdan Alıntı: Cihazda mı test ediyorsunuz yoksa simulatörde mi? Arama işlemi cihazda çalışmaktadır. Simulatörde çalışmaz.

Cihazda test ediyorum.
Cevapla
#5
iOS 18'de Delphi'nin kullandığı openURL metodunun artık çalışmamasına neden olan bir değişiklik olmuş.
 
C:\Program Files (x86)\Embarcadero\Studio\23.0\source\FMX klasöründe  FMX.PhoneDialer.iOS.pas

Bu dosyayı proje klasörüne kopyalamalıyız. ve aşağıdaki kodlarla arama yapabiliyoruz.

unit Unit1;



interface



uses

 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,

 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,

 FMX.Controls.Presentation, FMX.Edit,  FMX.Platform,

 iOSapi.Foundation, iOSapi.UIKit, Macapi.Helpers, Macapi.ObjectiveC;



type

 TUIApplicationOpenURLCompletionProc = procedure(success: Boolean) of object;



 UIApplicationEx = interface(UIApplication)

   ['{C1BE9D49-21ED-4723-90F0-0199A54D16FE}']

   procedure openURL(url: NSURL; options: NSDictionary; completionHandler: TUIApplicationOpenURLCompletionProc); cdecl;

 end;



 TUIApplicationEx = class(TOCGenericImport<UIApplicationClass, UIApplicationEx>) end;



type

 TForm1 = class(TForm)

   Edit1: TEdit;

   Button1: TButton;

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }



 public

   { Public declarations }

 end;



var

 Form1: TForm1;



implementation



{$R *.fmx}



function SharedApplicationEx: UIApplicationEx;

begin

 Result := TUIApplicationEx.Wrap(TUIApplication.OCClass.sharedApplication);

end;



function Ara(const TelefonNumarasi: string): Boolean;

var

 URL: NSURL;

begin

 URL := StrToNSUrl(Format('tel:%s', [TelefonNumarasi]));

 Result := SharedApplicationEx.canOpenURL(URL);

 if Result then

   SharedApplicationEx.openURL(URL, nil, nil);

end;



procedure TForm1.Button1Click(Sender: TObject);

begin

Ara(edit1.Text);

end;


end.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  telefondan telefona ses çaldırmak shooterman 14 2.394 27-11-2023, Saat: 14:18
Son Yorum: hi_selamlar
  Telefondan Telefona Bas Konuş Tarzı Chat Programı Jakarta2 5 1.914 21-11-2022, Saat: 21:54
Son Yorum: Jakarta2
  Mobil platformlarda (Android, iOS) internet bağlantısı kontrolü yapmak TescilsizUzman 11 13.079 09-05-2022, Saat: 01:08
Son Yorum: YILDIRIMBEY
  Telefondan Sayım Yapmak HK. OmerAsaf 8 3.734 21-08-2021, Saat: 13:32
Son Yorum: ahmet6513
  gelen arama listesini alma erdogan 12 8.609 07-09-2018, Saat: 12:46
Son Yorum: mrmarman



Konuyu Okuyanlar: 1 Ziyaretçi