Yorumları: 186
Konuları: 41
Kayıt Tarihi: 19-10-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 236 Acemi
Windows tarafı kolay, bir kaç satırla bir link adresini butona tıklayıp açabiliyoruz.
Ancak mobil tarafında android ve ios için bir sürü kod gerekiyor "http:..." diye başlayan internet adreslerini açmak için.
Bu işin bir kolayı var mıdır?
Kolay işler çok zor, zor işler çok kolay maalesef delphi de...
Yorumları: 283
Konuları: 1
Kayıt Tarihi: 13-03-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.1
- Delphi XE7
- Delphi 7
Rep Puanı: 964 Acemi
merhaba,
windows tarafında nasıl yapıyorsun.
ona göre mobil için düzenleme yapalım.
Yorumları: 521
Konuları: 59
Kayıt Tarihi: 27-02-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 852 Acemi
Yorumları: 186
Konuları: 41
Kayıt Tarihi: 19-10-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 236 Acemi
18-10-2018, Saat: 14:30
(Son Düzenleme: 18-10-2018, Saat: 14:57, Düzenleyen: nehirnnn.)
(18-10-2018, Saat: 14:27)meko Adlı Kullanıcıdan Alıntı: merhaba,
windows tarafında nasıl yapıyorsun.
ona göre mobil için düzenleme yapalım.
Windows tarafından kastım VCL.
ShellExecute(Handle,
'open',
PChar(AcilacakAdres.Text),
nil,
nil,
sw_ShowMaximized);
(18-10-2018, Saat: 14:28)klavye Adlı Kullanıcıdan Alıntı: Denemedim ama belki asagidaki link isinizi gorur.
https://www.developpeur-pascal.fr/p/_200...onkey.html
Benim bulduğum çözüm de bu şimdilik. Ama belki daha kısa bir yolu vardır diye bu konuyu açtım. Eğer başka çözümler gelmezse bu kodları bir class haline getirip kullanmak gerekecek.
(18-10-2018, Saat: 14:28)klavye Adlı Kullanıcıdan Alıntı: Denemedim ama belki asagidaki link isinizi gorur.
https://www.developpeur-pascal.fr/p/_200...onkey.html
Yukarıdaki kodu class şeklinde kullandığımda Androidde çalışıyor. Ios deneyemiyorum şu anda. Windows tarafında ise şu hatayı veriyor:
Debug Output:
onecoreuap\shell\windows.storage\execassoc.cpp(4587)\windows.storage.dll!75DA9BF4: (caller: 75C40725) ReturnHr(2) tid(2454) 8007007E Belirtilen modül bulunamadı.
CallContext:[\InvokeAssociatedProgram]
Yorumları: 1.572
Konuları: 88
Kayıt Tarihi: 09-08-2016
Rep Puanı: 13.841 Üstad
18-10-2018, Saat: 15:20
(Son Düzenleme: 18-10-2018, Saat: 15:21, Düzenleyen: SimaWB.)
Windows'ta, Android'de ve de IOS'ta çalışması için yukarıdaki linkte verilen kodlar pek de uzun değil bence
There's no place like 127.0.0.1
Yorumları: 186
Konuları: 41
Kayıt Tarihi: 19-10-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 236 Acemi
18-10-2018, Saat: 15:30
(Son Düzenleme: 18-10-2018, Saat: 15:31, Düzenleyen: nehirnnn.)
Uzunlukla tam olarak anlatmak istediğim şeyi kastedemedim galiba.
Örneğin standart pek çok iş için ActionList nesnesini kullanıyorum. Bu da her mobil uygulamada kullanılacak bir fonksiyon. Hiç kullanmazsanız program hakkında açıklamalar bulunan bir sayfada kendi web sitenizin linkini verirsiniz.
Standart olarak herkesin kullandığı, kullanacağı özellikler ActionList gibi bir nesnede toplanırsa çok daha pratik ve çekici olur.
Aynı şeyi fotoğraf konusunda da yaşadım. Daha önce forumda Exif başlıklı bir konu açtım. Örneğin mobil bir uygulamada herkes fotoğraf çekimini ve galeriden resim görüntüleme özelliğini bir şekilde kullanır. Bunlar ActionList içine alınmış. Ancak okunan resmin Exif bilgisine göre doğru görüntülenmesi atlanmış. Hiç kimse galeriden çağırdığı, ya da çektiği fotoğrafın ters görünmesini istemez.
Halen de bu exif olayını çözebilmiş değilim.
Yani anlatmaya çalıştığım şey şu. Standart fonksiyonlar çoğalmalı ve daha da çok geliştirilmeli diye düşünüyorum. Bu programcılığın yaratıcı yönünü baltalamaz, aksine süreci hızlandırır.
Bazen herkesin kullandığını düşündüğüm şeyleri sadece kendimin kullandığı hissine kapılıyorum Delphi ile ilgili olarak. Fotoğraf çekme, galeriden resim görüntüleme, link açma vb.....
Yorumları: 4.247
Konuları: 381
Kayıt Tarihi: 07-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 17.121 Üstad
Merhaba,
Windows, Android ve iOS için Open URL kütüphanesi.
DelphiCan'dır!
Yorumları: 186
Konuları: 41
Kayıt Tarihi: 19-10-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 236 Acemi
(18-10-2018, Saat: 15:52)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
Windows, Android ve iOS için Open URL kütüphanesi.
Windows10 da sıkıntı var yine. Yukarıda yazdığım hatayı veriyor.
Yorumları: 342
Konuları: 15
Kayıt Tarihi: 16-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 2.715 Uzman
(18-10-2018, Saat: 16:15)nehirnnn Adlı Kullanıcıdan Alıntı: Windows10 da sıkıntı var yine. Yukarıda yazdığım hatayı veriyor.
Merhaba,
İlgili kütüphaneyi projeyle aynı klasöre alıp aşağıdaki şekilde denediğimde, mobil ve w10 için sorun yaşamadım.
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.Controls.Presentation, FMX.StdCtrls,
OpenViewUrl;// <=========
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenURL('http://www.delphican.com');
end;
end.
Yorumları: 4.247
Konuları: 381
Kayıt Tarihi: 07-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 17.121 Üstad
Aşağıda paylaşılan örnek kütüphane Windows, Android (eski kütüphaneler yeni metodlarla değiştirildi), iOS ve OS X (sonradan eklendi) platformlarında çalışmaktadır.
Yapılan değişiklikler:
Çalışan Unit:
unit OpenViewUrl;
interface
function OpenURL(const URL: string;
const DisplayError: Boolean = False): Boolean;
implementation
uses
IdURI, SysUtils, Classes, FMX.Dialogs
{$IF DEFINED(MSWINDOWS)}
, ShellApi, Windows
{$ELSEIF DEFINED(ANDROID)}
, Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNI.App, Androidapi.JNI.Net, Androidapi.Helpers
{$ELSEIF DEFINED(iOS)}
, iOSapi.Foundation, FMX.Helpers.iOS, Macapi.Helpers
{$ELSEIF DEFINED(MACOS)}
, Macapi.AppKit, Macapi.Foundation, Macapi.Helpers
{$ENDIF};
function OpenURL(const URL: string;
const DisplayError: Boolean = False): Boolean;
{$IFDEF ANDROID}
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
Intent.setData(StrToJURI(URL));
try
TAndroidHelper.Activity.startActivity(Intent);
exit(true);
except
on e: Exception do
begin
if DisplayError then
ShowMessage('Error: ' + e.Message);
exit(False);
end;
end;
end;
{$ELSE}
{$IFDEF IOS}
var
strURL: NSurl;
begin
strURL := StrToNSUrl(TIdURI.URLEncode(URL));
if SharedApplication.canOpenURL(strURL) then
begin
SharedApplication.OpenURL(strURL);
exit(true);
end
else
begin
ShowMessage('Sayfa açılamadı');
exit(true)
end;
end;
{$ELSE}
{$IFDEF MACOS}
var
ws: NSWorkspace;
strURL: NSurl;
begin
ws := TNSWorkspace.wrap(TNSWorkspace.OCClass.sharedWorkspace);
strURL := StrToNSUrl(TIdURI.URLEncode(URL));
if ws.OpenURL(strURL) then
exit(true)
else
begin
ShowMessage('Sayfa açılamadı');
exit(true)
end;
end;
{$ELSE}
{$IFDEF MSWINDOWS}
begin
ShellExecute(0, 'open', PWideChar(URL), nil, nil, SW_SHOWNORMAL);
exit(true);
end;
{$ELSE}
begin
raise Exception.Create('Not supported!');
end;
{$ENDIF ANDROID}
{$ENDIF IOS}
{$ENDIF MACOS}
{$ENDIF MSWINDOWS}
end.
Kullanımı:
OpenURL('http://www.DelphiCan.com');
DelphiCan'dır!
|