Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Fmx WebBrowser Sayfa Yükleninceye kadar bekleme
#1
Merhaba,

Delphi Vcl tarafında webbrowser ile şu benzer şekilde bir yapıyla onDocumentComplete sayfasında gelenUrl ile beklenen URL eşit işe xTamam''ı true
çekip sayfayı daha sonra gösterme yapıyordum.

Application.ProcessMessages ile yapıyım (fmx kütüphanesindede gördüm) aynı şekilde dedim finish e girince ye kadar bir while döngüsü kuruyum
dedim uygulama donuyor.

şimdi bunun android tarafında aşmaya çalışıyorum. finish metodunu kullanıyorum ama 2-3 kere giriyor bir sayfa yüklenirken 
sayfanın tamamen yüklendiğini nasıl anlayabilirim?Merhaba,


Delphi Vcl tarafında webbrowser ile şu benzer şekilde bir yapıyla onDocumentComplete sayfasında gelenUrl ile beklenen URL eşit işe xTamam''ı true
çekip sayfayı daha sonra gösterme yapıyordum, forumda vardı.

Application.ProcessMessages ile yapıyım (fmx kütüphanesindede gördüm) aynı şekilde dedim finish e girince ye kadar bir while döngüsü kuruyum
dedim uygulama donuyor.

şimdi bunun android tarafında aşmaya çalışıyorum. finish metodunu kullanıyorum ama 2-3 kere giriyor bir sayfa yüklenirken 
sayfanın tamamen yüklendiğini nasıl anlayabilirim?

 
 webGoURL(wbBack, aBeklenenURL,agidilecekURL, xBeklenenURL, xTamam)
begin
 try
   xTamam := False;
   xBeklenenURL := aBeklenenURL;
   aWb.Navigate(agidilecekURL, $02, null, null);
   while NOT xTamam do
   begin
     Application.ProcessMessages;
     if xStop = 1 then
       begin
           aWb.Stop;
           Exit;
       end;
   end;
 Except
   begin
     aWb.Stop;
     Exit;
   end;
 end;
end;
Cevapla
#2
Merhaba,
VCL Platformunda kullanılan OnDocumentComplete olayı, FMX platformunda OnDidFinishLoad olayına karşılık gelmektedir.
Yaptığım testlerde;
Windows platformunda tüm Navigate işlemlerinde 3 defa çalışıyor.
Android platformunda ilk Navigate işleminde 2 defa çalıştı, sonraki navigate işlemlerinde 1 defa çalıştı.
iOS platformunda stabil olarak her Navigate işleminde 1 defa çalışıyor.
Mac OS X  platformunda stabil olarak her Navigate işleminde 1 defa çalışıyor.

2018-02-02_15-15-38.png


Huh
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
OnDocumentComplete kaç defa tetiklendiği çağırdığınız web sayfasına göre değişir. Sayfadaki her IFRAME için tetiklenir. IFRAME yoksa bir kez tetiklenmesi gerekir.

(02-02-2018, Saat: 14:10)malitutuncu Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Merhaba,

Delphi Vcl tarafında webbrowser ile şu benzer şekilde bir yapıyla onDocumentComplete sayfasında gelenUrl ile beklenen URL eşit işe xTamam''ı true
çekip sayfayı daha sonra gösterme yapıyordum.

Application.ProcessMessages ile yapıyım (fmx kütüphanesindede gördüm) aynı şekilde dedim finish e girince ye kadar bir while döngüsü kuruyum
dedim uygulama donuyor.

şimdi bunun android tarafında aşmaya çalışıyorum. finish metodunu kullanıyorum ama 2-3 kere giriyor bir sayfa yüklenirken 
sayfanın tamamen yüklendiğini nasıl anlayabilirim?Merhaba,


Delphi Vcl tarafında webbrowser ile şu benzer şekilde bir yapıyla onDocumentComplete sayfasında gelenUrl ile beklenen URL eşit işe xTamam''ı true
çekip sayfayı daha sonra gösterme yapıyordum, forumda vardı.

Application.ProcessMessages ile yapıyım (fmx kütüphanesindede gördüm) aynı şekilde dedim finish e girince ye kadar bir while döngüsü kuruyum
dedim uygulama donuyor.

şimdi bunun android tarafında aşmaya çalışıyorum. finish metodunu kullanıyorum ama 2-3 kere giriyor bir sayfa yüklenirken 
sayfanın tamamen yüklendiğini nasıl anlayabilirim?

 
 webGoURL(wbBack, aBeklenenURL,agidilecekURL, xBeklenenURL, xTamam)
begin
 try
   xTamam := False;
   xBeklenenURL := aBeklenenURL;
   aWb.Navigate(agidilecekURL, $02, null, null);
   while NOT xTamam do
   begin
     Application.ProcessMessages;
     if xStop = 1 then
       begin
           aWb.Stop;
           Exit;
       end;
   end;
 Except
   begin
     aWb.Stop;
     Exit;
   end;
 end;
end;

Sayfa yüklenmesini kontrol için OnNavigateComplete2 kullanılabilir. Ama FMX'te var mı bilmiyorum.
There's no place like 127.0.0.1
WWW
Cevapla
#4
(02-02-2018, Saat: 15:49)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.OnDocumentComplete kaç defa tetiklendiği çağırdığınız web sayfasına göre değişir. Sayfadaki her IFRAME için tetiklenir. IFRAME yoksa bir kez tetiklenmesi gerekir.

DelphiCan'daki frame sayısı belli olmasına rağmen OnDidFinishLoad olayı her platformda farklı tepki gösteriyor.
Garip değil mi?
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#5
(02-02-2018, Saat: 15:49)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.OnDocumentComplete kaç defa tetiklendiği çağırdığınız web sayfasına göre değişir. Sayfadaki her IFRAME için tetiklenir. IFRAME yoksa bir kez tetiklenmesi gerekir.

(02-02-2018, Saat: 14:10)malitutuncu Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Merhaba,

Delphi Vcl tarafında webbrowser ile şu benzer şekilde bir yapıyla onDocumentComplete sayfasında gelenUrl ile beklenen URL eşit işe xTamam''ı true
çekip sayfayı daha sonra gösterme yapıyordum.

Application.ProcessMessages ile yapıyım (fmx kütüphanesindede gördüm) aynı şekilde dedim finish e girince ye kadar bir while döngüsü kuruyum
dedim uygulama donuyor.

şimdi bunun android tarafında aşmaya çalışıyorum. finish metodunu kullanıyorum ama 2-3 kere giriyor bir sayfa yüklenirken 
sayfanın tamamen yüklendiğini nasıl anlayabilirim?Merhaba,


Delphi Vcl tarafında webbrowser ile şu benzer şekilde bir yapıyla onDocumentComplete sayfasında gelenUrl ile beklenen URL eşit işe xTamam''ı true
çekip sayfayı daha sonra gösterme yapıyordum, forumda vardı.

Application.ProcessMessages ile yapıyım (fmx kütüphanesindede gördüm) aynı şekilde dedim finish e girince ye kadar bir while döngüsü kuruyum
dedim uygulama donuyor.

şimdi bunun android tarafında aşmaya çalışıyorum. finish metodunu kullanıyorum ama 2-3 kere giriyor bir sayfa yüklenirken 
sayfanın tamamen yüklendiğini nasıl anlayabilirim?

 
 webGoURL(wbBack, aBeklenenURL,agidilecekURL, xBeklenenURL, xTamam)
begin
 try
   xTamam := False;
   xBeklenenURL := aBeklenenURL;
   aWb.Navigate(agidilecekURL, $02, null, null);
   while NOT xTamam do
   begin
     Application.ProcessMessages;
     if xStop = 1 then
       begin
           aWb.Stop;
           Exit;
       end;
   end;
 Except
   begin
     aWb.Stop;
     Exit;
   end;
 end;
end;

Sayfa yüklenmesini kontrol için OnNavigateComplete2 kullanılabilir. Ama FMX'te var mı bilmiyorum.

Tekrar Merhaba,
FMX platformunda WebBrowser'ın On'ları

2018-02-02_15-58-00.png
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#6
(02-02-2018, Saat: 15:57)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(02-02-2018, Saat: 15:49)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.OnDocumentComplete kaç defa tetiklendiği çağırdığınız web sayfasına göre değişir. Sayfadaki her IFRAME için tetiklenir. IFRAME yoksa bir kez tetiklenmesi gerekir.

DelphiCan'daki frame sayısı belli olmasına rağmen OnDidFinishLoad olayı her platformda farklı tepki gösteriyor.
Garip değil mi?

Sayfanın sunucu kodlarına bağlı olarak değişebilir. Malum, bir web sayfası farklı platformlar için farklı içerik üretebiliyorlar. MyBB'de o şekilde bir kontrol var mı bilemiyorum ama...
Yine de yukarıda yazdığım gibi; sayfanın yüklenme kontrolü OnNavigateComplete2 ile yapılmalı. FMX'te bu varsa, sanırım asıl sorulan soruya çözüm olacaktır.

WebBrowser olaylarını paylaştığınızı son yorumumdan sonra gördüm.
Paylaşım için teşekkürler Fesih Bey.
FMX'te olaylar tamamen farklı imiş Smile

Peki OnDidFinishLoad'da WebBrowser1.URL hep aynı değeri mi gösteriyor acaba? Eğer farklı URL'ler geliyorsa malitutuncu soruda belirttiği gibi URL kontrolü yapılarak sonuca ulaşılabilir.
There's no place like 127.0.0.1
WWW
Cevapla
#7
SimaWb ve Fesih hocam

1.
Bizde mesela sisteme giren Admin' se bir sayfaya gidiyor. Kullanıcıysa bir sayfaya gidiyor
Kullanıcılar da 3'e ayrılıyor ögrenci,veli,müdür diye. Bunlarda ayrı
Adminse Kademe kontrollerine göre yönlerdiriyor. Yani baya değişiyor.

2.
Bir sayfa yüklemek için farklı url'ler gelebiliyor mesela çıkış yapıldığında /modul/cikis a gidiyor anında modul/giris e gidiyor.
normal webbrowserde bu arada cikis yerini göremiyoruz Kullanıcı rollerini boşaltıyor

3. bir sayfaya girerken değişik 8 kere girdiğide oluyor, 4 kere de , 2 kerede o yönlendirmelerine ve dediğiniz gibi sayfa da kullanılanlara bakıyor sanırım

4.
onShouldStartLoadWithRequest eventinde ise gideceği URL'i veriyor daha sayfaya gitmeden


bazı yerlerde windows wbbroser dll ' ini delphiye impoert etmişler baya bir uğraşmışlar ama daha kolay bir yolla çömeye çalışıyorum.Şimdilik onDidFinishLoad eventi ve onDidStartLoad eventi ile yapmak için yollar arıyorum.

Şuanlık bilgilerim bunlar =)
Teşekkürler
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Firemonkey WebBrowser Dosya Seçimi narkotik 0 39 14-10-2019, Saat: 00:17
Son Yorum: narkotik
Lightbulb Google Play Store'a Ağustos 2020'ye kadar nasıl uygulama yüklenir? Abdullah ILGAZ 22 940 12-10-2019, Saat: 00:53
Son Yorum: Abdullah ILGAZ
  tam sayfa splash ekranı ? Mr.Developer 12 2.276 15-02-2019, Saat: 21:42
Son Yorum: Mr.Developer
  Delphi XE5 ve Webbrowser sorunu smyrna231802 9 1.400 20-11-2018, Saat: 18:51
Son Yorum: malitutuncu
  webbrowser arama kayıtları ? Mr.Developer 0 339 15-10-2018, Saat: 17:27
Son Yorum: Mr.Developer



Konuyu Okuyanlar: 1 Ziyaretçi