2011-08-22 36 views
6

Bu, bir şey sorduğum ilk seferde, eğer yanlış bir şey varsa bana söyleyin, ben de ASAP'ı düzeltmeye çalışacağım.WebView'i arka planda açma

Yerel bir Android uygulamasıyla sunucularına giriş yapmamızı isteyen, ancak bunu yapmamız için bize özel bir yol sağlamayan bir müşterimiz var. Onlar, giriş yapmak zorunda oldukları mevcut web sitesini kullanmamızı ve kimlik doğrulaması yapıldıktan sonra, tarayıcıda ihtiyaç duyduğumuz verileri içeren bir XML almamızı istiyor. Bundan sonra, yerel uygulamadaki verileri kullanın. Tüm bunlar, kullanıcının bir tarayıcının kullanıldığını bilmediğini/görmediğini. Toplam karışıklık IMHO. Tabii ki, bu yaklaşımı geçmişte hiç denemedim ve ilk testlerim bunu başarmanın imkansız (veya çok zor) olduğunu hissettiriyor. URL'yi gizli bir Web Görünümünde yüklemeye çalıştığımda, varsayılan tarayıcı web sitesini gösterir.

Benim asıl sorum, bir webview yüklemek ve onunla (javascript, vb ...) arka planda çalışmak mümkün mü?

Teşekkür ederiz.

cevap

7

WebView öğesini varsayılan olarak android: visibility = "gone" özelliğiyle gizli olarak ayarlayabilir, çalışma zamanında etkileşim kurabilir ve ardından verileri yükledikten sonra kullanıcıya göstermeniz gerektiğinde, yalnızca setVisibility öğesini çağırın (Görünüm.VISIBLE)

Bu yardımcı olur umarız!

+0

Wow, görünürlük web görünürlükleri için kullanılabileceğini farketmedim ... gerçeği View sınıfı üzerinde veren mantıklı. Teşekkürler! –

+0

Sorun değil, yardım ettiğine sevindim :) – AlexPriceAP

+0

AyncTask arka planda yüklemek için yararlı olabilir –

1

Ofc, bir iş parçacığı kullanmak üzere gerekir:

protected void getPage(){ 
    Thread th = new Thread(){ 

     public void run(){ 

      //Download and make things 



      mActivity.runOnUiThread(new Runnable() { 

       @Override 
       public void run() { 
        //print int the activity 

       } 
      }); 
     } 
    }; 

    th.start(); 

hatırlayın ve çok önemli thats, ana etkinliğe iplik çizmek cant. Ekranda çizebilecek tek kişi ana faaliyettir. 2 yöntemle çizim yapabilirsiniz: _mActivity yöntemiyle,

Bir. runOnUiThread (yeni Runnable() {_ i koymak örnekteki gibi. İki, çizmek istediğiniz bilgilerle ana aktiviteye parçacığı gelen mesajları göndermek için bir işleyicisi kullanın.

* Ana faaliyet etkinlik olduğunu o anda ekranda, o değil, uygulamanın ilk faaliyeti değil

+0

Bunun için teşekkürler. Gizli bir 'WebView' nesnesini yüklemek için bir etkinlikte (id tarafından yüklenen diğer yaklaşımları yapmak yerine) yeni bir WebView (this)' gerçekleştirirken, bu, düzgün çalışması için bir yük almanın tek yoluydu. Teşekkürler! – Marcus

İlgili konular