2010-10-23 4 views
0

J'ai une webview dans mon application qui fonctionne généralement bien pour le chargement de sites Web. Mais je ne peut pas obtenir www.gmail.com au travail: quand j'ouvre www.gmail.com je vois la page de connexion, essaye de se connecter, ensuite l'écran devient noir et mon application/processus est tué.gmail.com ne fonctionne pas sur webview (après la connexion)

Je ne vois pas grand chose dans mon logcat, juste quelques informations de débogage étranges sont jetées comme ci-dessous.

Mais généralement les sites https fonctionnent bien, et les procédures de connexion encore plus compliquées comme l'ouverture de stackoverflow.com, la connexion via openid via https, retour à stackoverflow, tout fonctionne sans problème dans mon webview. Seul gmail.com me donne ces problèmes.

Modifier: J'ai trouvé que si je n'assigne pas MyWebViewClient personnalisé à la vue Web, l'application ne plante pas mais ouvre le site Gmail dans le navigateur système par défaut. Mais je ne veux pas ça. Je veux qu'il s'ouvre uniquement dans ma propre page Web.

J'ai créé un rapport de bogue au http://code.google.com/p/android/issues/detail?id=12097, attaché à un exemple de projet très simple qui reproduit le crash.

I/DEBUG (2173): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
I/DEBUG (2173): Build fingerprint: 'Samsung/GT-I9000/GT-I9000/GT-I9000:2.1-update1/ECLAIR/XWJM6:user/release-keys' 
I/DEBUG (2173): pid: 6753, tid: 6793 >>> com.myapplication.android <<< 
I/DEBUG (2173): signal 11 (SIGSEGV), fault addr 0000004c 
I/DEBUG (2173): r0 00000000 r1 00000000 r2 00000000 r3 aa476ae0 
I/DEBUG (2173): r4 00000000 r5 4c2f5b74 r6 aa476ae0 r7 00595dec 
I/DEBUG (2173): r8 4c2f5da8 r9 444a7eb8 10 444a7ea0 fp 004be758 
I/DEBUG (2173): ip aa4770fc sp 4c2f5b50 lr aa1112bf pc aac0a5ac cpsr 48000030 
I/DEBUG (2173):   #00 pc 0000a5ac /system/lib/libsqlite.so 
I/DEBUG (2173):   #01 pc 001112bc /system/lib/libwebcore.so 
I/DEBUG (2173):   #02 pc 001118e2 /system/lib/libwebcore.so 
I/DEBUG (2173):   #03 pc 00111a80 /system/lib/libwebcore.so 
I/DEBUG (2173): 
I/DEBUG (2173): code around pc: 
I/DEBUG (2173): aac0a59c f7ff60e3 2000fd49 bf00bd70 4604b570 
I/DEBUG (2173): aac0a5ac 460d6cc0 f7ff4616 f8c4fd9d 230150e0 
I/DEBUG (2173): aac0a5bc 60e4f8c4 508cf8d4 f885e002 68ad30ff 
I/DEBUG (2173): 
I/DEBUG (2173): code around lr: 
I/DEBUG (2173): aa1112ac 68004905 e0021859 68002100 f6f9460a 
I/DEBUG (2173): aa1112bc bd10ec32 0036583c ffc9a849 4604b570 
I/DEBUG (2173): aa1112cc 46281d05 fd64f20b 46286826 60263e01 
I/DEBUG (2173): 
I/DEBUG (2173): stack: 
I/DEBUG (2173):  4c2f5b10 00000000 
I/DEBUG (2173):  4c2f5b14 aa31c6d3 /system/lib/libwebcore.so 
I/DEBUG (2173):  4c2f5b18 00000000 
I/DEBUG (2173):  4c2f5b1c aa011171 /system/lib/libwebcore.so 
I/DEBUG (2173):  4c2f5b20 00000000 
I/DEBUG (2173):  4c2f5b24 afe3ae08 /system/lib/libc.so 
I/DEBUG (2173):  4c2f5b28 afe3db7c 
I/DEBUG (2173):  4c2f5b2c afe0f170 /system/lib/libc.so 
I/DEBUG (2173):  4c2f5b30 00000000 
I/DEBUG (2173):  4c2f5b34 afe3ae08 /system/lib/libc.so 
I/DEBUG (2173):  4c2f5b38 00595dec [heap] 
I/DEBUG (2173):  4c2f5b3c afe0f170 /system/lib/libc.so 
I/DEBUG (2173):  4c2f5b40 00595ddc [heap] 
I/DEBUG (2173):  4c2f5b44 4c2f5b74 
I/DEBUG (2173):  4c2f5b48 df002777 
I/DEBUG (2173):  4c2f5b4c e3a070ad 
I/DEBUG (2173): #00 4c2f5b50 00595ddc [heap] 
I/DEBUG (2173):  4c2f5b54 4c2f5b74 
I/DEBUG (2173):  4c2f5b58 aa476ae0 /system/lib/libwebcore.so 
I/DEBUG (2173):  4c2f5b5c aa1112bf /system/lib/libwebcore.so 
I/DEBUG (2173): #01 4c2f5b60 00595ddc [heap] 
I/DEBUG (2173):  4c2f5b64 aa1118e7 /system/lib/libwebcore.so 
D/Zygote (2181): Process 6753 terminated by signal (11) 
I/ActivityManager(2237): Process com.myapplication.android (pid 6753) has died. 

XML:

<WebView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:theme="@style/Theme.NoBackground" 
     android:id="@+id/webView"/> 

code:

webView = (WebView)findViewById(R.id.webView); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setLoadsImagesAutomatically(true); 
    webView.getSettings().setAllowFileAccess(false);   
    webView.getSettings().setBuiltInZoomControls(true); 
    webView.getSettings().setPluginsEnabled(true); 
    webView.getSettings().setAllowFileAccess(true); 
    webView.getSettings().setAppCacheEnabled(true); 

    WebViewClient wv = new MyWebViewClient(); 
    webView.setWebViewClient(wv); 

/** 
* Customized webview client to allow mp4 to play in mediaplayer. 
*/ 
final class MyWebViewClient extends WebViewClient { 
@Override 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    if (url.endsWith(".mp4")) { 
     Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(url)); 
     view.getContext().startActivity(intent);    
     return true; 
    } else {    
     return super.shouldOverrideUrlLoading(view, url); 
     // instead of the line above, I have also tried this before without any difference: 
     // view.loadUrl(url); 
     // return true; 
    } 
} 
+0

même problème avec facebook.com - Je suppose que c'est pour tous les sites Web qui forcent à ouvrir une nouvelle fenêtre de navigateur ou le navigateur par défaut du système. –

Répondre

Questions connexes