Konuyu Paylaş : facebook gplus twitter

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 Giriş yap veya Üye OlMerhaba,

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 Giriş yap veya Üye OlOnDocumentComplete 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 Giriş yap veya Üye OlOnDocumentComplete 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 Giriş yap veya Üye OlMerhaba,

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 Giriş yap veya Üye Ol
(02-02-2018, Saat: 15:49)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlOnDocumentComplete 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

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  tam sayfa splash ekranı ? BY-HAYALET 8 274 10-07-2018, Saat: 12:17
Son Yorum: BY-HAYALET
Question bannerAd tam sayfa reklam ? BY-HAYALET 3 129 24-06-2018, Saat: 23:17
Son Yorum: hyperxman
  webbrowser - google görseller vs indirme yapmaması ? BY-HAYALET 0 91 07-06-2018, Saat: 11:46
Son Yorum: BY-HAYALET
  Webbrowser video fullscreen sorunu hakanharbeli 2 195 10-04-2018, Saat: 00:55
Son Yorum: hakanharbeli
  webbrowser açıp geri dönünce ekran donuyor erdogan 31 904 30-03-2018, Saat: 18:30
Son Yorum: BY-HAYALET



Konuyu Okuyanlar: 1 Ziyaretçi