![]() |
|
Link açma - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7) +--- Konu Başlığı: Link açma (/showthread.php?tid=2765) Sayfalar:
1
2
|
Link açma - nehirnnn - 18-10-2018 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... Link açma - meko - 18-10-2018 merhaba, windows tarafında nasıl yapıyorsun. ona göre mobil için düzenleme yapalım. Link açma - klavye - 18-10-2018 Denemedim ama belki asagidaki link isinizi gorur. https://www.developpeur-pascal.fr/p/_2000-ouvrir-un-site-web-dans-le-navigateur-par-defaut-depuis-une-application-firemonkey.html Cvp: Link açma - nehirnnn - 18-10-2018 (18-10-2018, Saat: 14:27)meko Adlı Kullanıcıdan Alıntı: merhaba, 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.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. 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] Link açma - SimaWB - 18-10-2018 Windows'ta, Android'de ve de IOS'ta çalışması için yukarıdaki linkte verilen kodlar pek de uzun değil bence
Link açma - nehirnnn - 18-10-2018 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..... Cvp: Link açma - Fesih ARSLAN - 18-10-2018 Merhaba, Windows, Android ve iOS için Open URL kütüphanesi. Cvp: Link açma - nehirnnn - 18-10-2018 (18-10-2018, Saat: 15:52)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba, Windows10 da sıkıntı var yine. Yukarıda yazdığım hatayı veriyor. Cvp: Link açma - ozcanm - 18-10-2018 (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.
Cvp: Link açma - Fesih ARSLAN - 18-10-2018 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');
|