Facebook connect / webview android ne fonctionne pas
Fermé
donnemoifaim
Messages postés
6
Date d'inscription
samedi 23 mai 2015
Statut
Membre
Dernière intervention
2 juin 2015
-
Modifié par donnemoifaim le 28/05/2015 à 03:20
donnemoifaim Messages postés 6 Date d'inscription samedi 23 mai 2015 Statut Membre Dernière intervention 2 juin 2015 - 2 juin 2015 à 00:37
donnemoifaim Messages postés 6 Date d'inscription samedi 23 mai 2015 Statut Membre Dernière intervention 2 juin 2015 - 2 juin 2015 à 00:37
A voir également:
- Facebook connect / webview android ne fonctionne pas
- Appareil connecté facebook - Guide
- Android recovery - Guide
- Ne pas deranger android - Guide
- Facebook lite gratuit - iam - Télécharger - Messagerie
- Story facebook - Guide
6 réponses
BunoCS
Messages postés
15505
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
5 février 2025
3 913
Modifié par BunoCS le 28/05/2015 à 11:20
Modifié par BunoCS le 28/05/2015 à 11:20
Hello,
Je n'aime pas trop utiliser les webviews dans mes applis. Après quelques recherches (voir ici par exemble), il semblerait qu'il faille surchargé la méthode
En passant, l'initialisation de ta webview doit se faire dans le
@+
Buno, Modo CS-CCM
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
The urgent is done, the impossible is underway. For miracles, provide for a delay...
Je n'aime pas trop utiliser les webviews dans mes applis. Après quelques recherches (voir ici par exemble), il semblerait qu'il faille surchargé la méthode
onCreateWindowsdu
WebChromeClient. Un exemple de code ici: https://pastebin.com/KdzfhqDJ
En passant, l'initialisation de ta webview doit se faire dans le
onCreateet non dans le
onCreateOptionsMenu.
@+
Buno, Modo CS-CCM
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
The urgent is done, the impossible is underway. For miracles, provide for a delay...
donnemoifaim
Messages postés
6
Date d'inscription
samedi 23 mai 2015
Statut
Membre
Dernière intervention
2 juin 2015
28 mai 2015 à 16:14
28 mai 2015 à 16:14
J'ai pas mal d'erreur , j'ai simplement copié-collé pour le tester. J'ai 4 erreurs :
--> cannot resolve mainWebView
--> cannot resolve progressBar
--> cannot resolve webview_frame
--> cannot resolve example_main
Me manque t'il des SDK nécessaire ? Le code est t'il faux, obselete ? Me manque t'il des déclarations (que ce soit dans le layout, le manifeste ou autre ? )
Voici le code complet de l'url que tu m'as fourni :
Merci pour votre attention à tous !!
mainWebView = (WebView) findViewById(R.id.mainWebView);
--> cannot resolve mainWebView
mProgress = (ProgressBar) findViewById(R.id.progressBar);
--> cannot resolve progressBar
mContainer = (FrameLayout) findViewById(R.id.webview_frame);
--> cannot resolve webview_frame
getMenuInflater().inflate(R.menu.example_main, menu);
--> cannot resolve example_main
Me manque t'il des SDK nécessaire ? Le code est t'il faux, obselete ? Me manque t'il des déclarations (que ce soit dans le layout, le manifeste ou autre ? )
Voici le code complet de l'url que tu m'as fourni :
package fr.donnemoifaim.donnemoifaim;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.net.http.SslError;
import android.os.Bundle;
import android.app.Activity;
import android.os.Message;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.*;
import android.widget.FrameLayout;
import android.widget.ProgressBar;
public class ExampleMainActivity extends Activity {
protected WebView mainWebView;
private ProgressBar mProgress;
private Context mContext;
private WebView mWebview;
private WebView mWebviewPop;
private FrameLayout mContainer;
private String url = "http://stage.example.com";
private String target_url_prefix = "stage.example.com";
public void onBackPressed(){
if (mainWebView.isFocused() && mainWebView.canGoBack()) {
mainWebView.goBack();
}
else {
super.onBackPressed();
finish();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Get main webview
mainWebView = (WebView) findViewById(R.id.mainWebView);
//Progress Bar
mProgress = (ProgressBar) findViewById(R.id.progressBar);
//Cookie manager for the webview
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
//Get outer container
mContainer = (FrameLayout) findViewById(R.id.webview_frame);
//Settings
WebSettings webSettings = mainWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAppCacheEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setSupportMultipleWindows(true);
mainWebView.setWebViewClient(new MyCustomWebViewClient());
mainWebView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
mainWebView.setWebChromeClient(new MyCustomChromeClient());
mainWebView.loadUrl("http://stage.example.com/home");
mContext=this.getApplicationContext();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.example_main, menu);
return true;
}
private class MyCustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
String host = Uri.parse(url).getHost();
//Log.d("shouldOverrideUrlLoading", url);
if (host.equals(target_url_prefix))
{
// This is my web site, so do not override; let my WebView load
// the page
if(mWebviewPop!=null)
{
mWebviewPop.setVisibility(View.GONE);
mContainer.removeView(mWebviewPop);
mWebviewPop=null;
}
return false;
}
if(host.equals("m.facebook.com") || host.equals("www.facebook.com"))
{
return false;
}
// Otherwise, the link is not for a page on my site, so launch
// another Activity that handles URLs
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler,
SslError error) {
Log.d("onReceivedSslError", "onReceivedSslError");
//super.onReceivedSslError(view, handler, error);
}
}
private class MyCustomChromeClient extends WebChromeClient
{
@Override
public boolean onCreateWindow(WebView view, boolean isDialog,
boolean isUserGesture, Message resultMsg) {
mWebviewPop = new WebView(mContext);
mWebviewPop.setVerticalScrollBarEnabled(false);
mWebviewPop.setHorizontalScrollBarEnabled(false);
mWebviewPop.setWebViewClient(new MyCustomWebViewClient());
mWebviewPop.getSettings().setJavaScriptEnabled(true);
mWebviewPop.getSettings().setSavePassword(false);
mWebviewPop.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
mContainer.addView(mWebviewPop);
WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(mWebviewPop);
resultMsg.sendToTarget();
return true;
}
@Override
public void onCloseWindow(WebView window) {
Log.d("onCloseWindow", "called");
}
}
}
Merci pour votre attention à tous !!
BunoCS
Messages postés
15505
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
5 février 2025
3 913
28 mai 2015 à 16:52
28 mai 2015 à 16:52
Il faut l'adapter à ton code ;)
La méthode
Il faut également faire du ménage: si tu n'as pas de ProgressBar, de menu,...tu supprimes.
La méthode
findViewByIDcherche, comme son nom l'indique, une correspondance entre un ID et une vue. Par exemple, dans ton code, ta webView est identifiée avec l'ID
R.id.webview.
Il faut également faire du ménage: si tu n'as pas de ProgressBar, de menu,...tu supprimes.
donnemoifaim
Messages postés
6
Date d'inscription
samedi 23 mai 2015
Statut
Membre
Dernière intervention
2 juin 2015
28 mai 2015 à 23:49
28 mai 2015 à 23:49
Haha oui en effet ç'est tout bette, j'étais sur d'avoir fait quelque chose de mauvais que je n'ai pas pensé à supprimer les lignes :p !
Bon du coup aucune erreur mais quand je lance l'appli : l'application 'donnemoifaim' s'est arrête..
Alors là trou noir..
On récapitule :
------------------------
MainActivity.java :
---------------------------
AndroidActivity.xml :
------------------------------
menu_main.xml :
values->strings.xml
----------------------------
values-> style.xml
Je pense qui y a des choses inutiles/flous, étant un parfait novice j'ai vraiment du mal à les identifier :S
Bon du coup aucune erreur mais quand je lance l'appli : l'application 'donnemoifaim' s'est arrête..
Alors là trou noir..
On récapitule :
------------------------
MainActivity.java :
package fr.donnemoifaim.donnemoifaim;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.net.http.SslError;
import android.os.Bundle;
import android.app.Activity;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.*;
import android.webkit.WebChromeClient;
import android.widget.FrameLayout;
import android.widget.ProgressBar;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
private WebView mainWebView;
private ProgressBar mProgress;
private Context mContext;
private WebView mWebview;
private WebView mWebviewPop;
private FrameLayout mContainer;
private String url = "https://donnemoifaim.fr";
private String target_url_prefix = "donnemoifaim.fr";
public void onBackPressed(){
if (mainWebView.isFocused() && mainWebView.canGoBack()) {
mainWebView.goBack();
}
else {
super.onBackPressed();
finish();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Cookie manager for the webview
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
//Get outer container
mContainer = (FrameLayout) findViewById(R.id.webview_frame);
//Settings
WebSettings webSettings = mainWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAppCacheEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setSupportMultipleWindows(true);
mainWebView.setWebViewClient(new MyCustomWebViewClient());
mainWebView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
mainWebView.setWebChromeClient(new MyCustomChromeClient());
mainWebView.loadUrl("https://donnemoifaim.fr");
mContext=this.getApplicationContext();
}
private class MyCustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
String host = Uri.parse(url).getHost();
//Log.d("shouldOverrideUrlLoading", url);
if (host.equals(target_url_prefix))
{
// This is my web site, so do not override; let my WebView load
// the page
if(mWebviewPop!=null)
{
mWebviewPop.setVisibility(View.GONE);
mContainer.removeView(mWebviewPop);
mWebviewPop=null;
}
return false;
}
if(host.equals("m.facebook.com") || host.equals("www.facebook.com"))
{
return false;
}
// Otherwise, the link is not for a page on my site, so launch
// another Activity that handles URLs
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler,
SslError error) {
Log.d("onReceivedSslError", "onReceivedSslError");
//super.onReceivedSslError(view, handler, error);
}
}
private class MyCustomChromeClient extends WebChromeClient
{
@Override
public boolean onCreateWindow(WebView view, boolean isDialog,
boolean isUserGesture, Message resultMsg) {
mWebviewPop = new WebView(mContext);
mWebviewPop.setVerticalScrollBarEnabled(false);
mWebviewPop.setHorizontalScrollBarEnabled(false);
mWebviewPop.setWebViewClient(new MyCustomWebViewClient());
mWebviewPop.getSettings().setJavaScriptEnabled(true);
mWebviewPop.getSettings().setSavePassword(false);
mWebviewPop.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
mContainer.addView(mWebviewPop);
WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(mWebviewPop);
resultMsg.sendToTarget();
return true;
}
@Override
public void onCloseWindow(WebView window) {
Log.d("onCloseWindow", "called");
}
}
}
---------------------------
AndroidActivity.xml :
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview_frame"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
------------------------------
menu_main.xml :
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context="MainActivity">
</menu>
values->strings.xml
<code><resources></code>
<string name="app_name">DonneMoiFaim</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
</resources>
----------------------------
values-> style.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
</resources>
Je pense qui y a des choses inutiles/flous, étant un parfait novice j'ai vraiment du mal à les identifier :S
BunoCS
Messages postés
15505
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
5 février 2025
3 913
Modifié par BunoCS le 29/05/2015 à 11:19
Modifié par BunoCS le 29/05/2015 à 11:19
Quel est le message d'erreur dans les logs?
Je vois ceci:
Or, tu dis avoir nommé ton fichier
Sachant qu'il n'est pas possible de mettre des majuscules dans les noms des ressources, il faut donc renommer ton fichier xml en activity_main.xml
Vu que tu n'utilises pas le menu, tu peux supprimer menu_main.xml.
Ensuite, comme je te l'ai dit, la méthode findViewByID() recherche la "vue" ou composant graphique ayant l'ID passé en paramètre. Dans ton xml, tu as une seule WebView mais tu ne la récupères pas dans ton onCreate()! Je parle de l'objet mainWebview qui n'est pas initialisé.
Et il te manque dans ton layout un container nommé R.id.webview_frame. Mais à voir si tu en as vraiment besoin dans ton cas...
@+
Buno, Modo CS-CCM
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
The urgent is done, the impossible is underway. For miracles, provide for a delay...
Je vois ceci:
setContentView(R.layout.activity_main);
Or, tu dis avoir nommé ton fichier
AndroidActivity.xml.
Sachant qu'il n'est pas possible de mettre des majuscules dans les noms des ressources, il faut donc renommer ton fichier xml en activity_main.xml
Vu que tu n'utilises pas le menu, tu peux supprimer menu_main.xml.
Ensuite, comme je te l'ai dit, la méthode findViewByID() recherche la "vue" ou composant graphique ayant l'ID passé en paramètre. Dans ton xml, tu as une seule WebView mais tu ne la récupères pas dans ton onCreate()! Je parle de l'objet mainWebview qui n'est pas initialisé.
Et il te manque dans ton layout un container nommé R.id.webview_frame. Mais à voir si tu en as vraiment besoin dans ton cas...
@+
Buno, Modo CS-CCM
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
The urgent is done, the impossible is underway. For miracles, provide for a delay...
BunoCS
Messages postés
15505
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
5 février 2025
3 913
29 mai 2015 à 11:22
29 mai 2015 à 11:22
Note: pour te simplifier la vie avec les findViewByID, je te conseille de regarder la lib ButterKnife
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
donnemoifaim
Messages postés
6
Date d'inscription
samedi 23 mai 2015
Statut
Membre
Dernière intervention
2 juin 2015
Modifié par donnemoifaim le 30/05/2015 à 17:18
Modifié par donnemoifaim le 30/05/2015 à 17:18
Ok, j'ai suivi tes multiples conseils, j'ai donc initié la webview (ce qui m'étonne, c'est que dans le lien exemple que tu m'as donné, ça n'y était pas ! )
Petit beug : quand on clique sur facebook log : l'application donnemoifaim s'arrete
Donc l'application se lance bien, pas de problème aucune erreur niveau code, idem pour les logs mon activity_mail.xml est devenu :
Pour le fichier .java :
Il doit manquer un tout petit rien du tout, si l'appli s'arrête, c'est que la méthode à bien été lancée, je fais mes recherches et bidouille un peu à droite à gauche, tiens moi au courant si tu trouves l'erreur potentielle :) !
les logs :
Installing fr.donnemoifaim.donnemoifaim
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/fr.donnemoifaim.donnemoifaim"
pkg: /data/local/tmp/fr.donnemoifaim.donnemoifaim
Success
Launching application: fr.donnemoifaim.donnemoifaim/fr.donnemoifaim.donnemoifaim.MainActivity.
DEVICE SHELL COMMAND: am start -n "fr.donnemoifaim.donnemoifaim/fr.donnemoifaim.donnemoifaim.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=fr.donnemoifaim.donnemoifaim/.MainActivity }
Petit beug : quand on clique sur facebook log : l'application donnemoifaim s'arrete
Donc l'application se lance bien, pas de problème aucune erreur niveau code, idem pour les logs mon activity_mail.xml est devenu :
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0099cc"
tools:context=".MyActivity"
android:id="@+id/webview_frame">
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</FrameLayout>
Pour le fichier .java :
package fr.donnemoifaim.donnemoifaim;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.net.http.SslError;
import android.os.Bundle;
import android.app.Activity;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.*;
import android.webkit.WebChromeClient;
import android.widget.FrameLayout;
import android.widget.ProgressBar;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
private WebView mainWebView;
private ProgressBar mProgress;
private Context mContext;
private WebView mWebview;
private WebView mWebviewPop;
private FrameLayout mContainer;
private String url = "https://donnemoifaim.fr";
private String target_url_prefix = "donnemoifaim.fr";
public void onBackPressed(){
if (mainWebView.isFocused() && mainWebView.canGoBack()) {
mainWebView.goBack();
}
else {
super.onBackPressed();
finish();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Cookie manager for the webview
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
WebView mainWebView = new WebView(this);
setContentView(mainWebView);
//Get outer container
mContainer = (FrameLayout) findViewById(R.id.webview_frame);
//Settings
WebSettings webSettings = mainWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAppCacheEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setSupportMultipleWindows(true);
mainWebView.setWebViewClient(new MyCustomWebViewClient());
mainWebView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
mainWebView.setWebChromeClient(new MyCustomChromeClient());
mainWebView.loadUrl("https://donnemoifaim.fr");
mContext=this.getApplicationContext();
}
private class MyCustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
String host = Uri.parse(url).getHost();
//Log.d("shouldOverrideUrlLoading", url);
if (host.equals(target_url_prefix))
{
// This is my web site, so do not override; let my WebView load
// the page
if(mWebviewPop!=null)
{
mWebviewPop.setVisibility(View.GONE);
mContainer.removeView(mWebviewPop);
mWebviewPop=null;
}
return false;
}
if(host.equals("m.facebook.com") || host.equals("www.facebook.com"))
{
return false;
}
// Otherwise, the link is not for a page on my site, so launch
// another Activity that handles URLs
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler,
SslError error) {
Log.d("onReceivedSslError", "onReceivedSslError");
//super.onReceivedSslError(view, handler, error);
}
}
private class MyCustomChromeClient extends WebChromeClient
{
@Override
public boolean onCreateWindow(WebView view, boolean isDialog,
boolean isUserGesture, Message resultMsg) {
mWebviewPop = new WebView(mContext);
mWebviewPop.setVerticalScrollBarEnabled(false);
mWebviewPop.setHorizontalScrollBarEnabled(false);
mWebviewPop.setWebViewClient(new MyCustomWebViewClient());
mWebviewPop.getSettings().setJavaScriptEnabled(true);
mWebviewPop.getSettings().setSavePassword(false);
mWebviewPop.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
mContainer.addView(mWebviewPop);
WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(mWebviewPop);
resultMsg.sendToTarget();
return true;
}
@Override
public void onCloseWindow(WebView window) {
Log.d("onCloseWindow", "called");
}
}
}
Il doit manquer un tout petit rien du tout, si l'appli s'arrête, c'est que la méthode à bien été lancée, je fais mes recherches et bidouille un peu à droite à gauche, tiens moi au courant si tu trouves l'erreur potentielle :) !
les logs :
Installing fr.donnemoifaim.donnemoifaim
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/fr.donnemoifaim.donnemoifaim"
pkg: /data/local/tmp/fr.donnemoifaim.donnemoifaim
Success
Launching application: fr.donnemoifaim.donnemoifaim/fr.donnemoifaim.donnemoifaim.MainActivity.
DEVICE SHELL COMMAND: am start -n "fr.donnemoifaim.donnemoifaim/fr.donnemoifaim.donnemoifaim.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=fr.donnemoifaim.donnemoifaim/.MainActivity }
donnemoifaim
Messages postés
6
Date d'inscription
samedi 23 mai 2015
Statut
Membre
Dernière intervention
2 juin 2015
2 juin 2015 à 00:37
2 juin 2015 à 00:37
Bon j'ai trouvé le problème, j'espère pouvoir aider d'autre :
Le code est bon, le truc c'est qu'il faut ajouter après la déclaration de la webview et avant le chargement de la page :
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
CookieManager.getInstance().setAcceptThirdPartyCookies(mainWebView, true);
}
Cela permet d'autoriser les cookies Facebook ! Je vous dis pas comment j'en est chier, surtout que c'est un beug que meme facebook connaissait mais n'a pas pris le temps de résoudre :
https://developers.facebook.com/docs/facebook-login/android/v2.3
Voici la source de la solution qui m'a beaucoup aidé :
https://stackoverflow.com/questions/28197150/checking-facebook-login-state-in-a-webview-always-returns-unknown
Le code est bon, le truc c'est qu'il faut ajouter après la déclaration de la webview et avant le chargement de la page :
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
CookieManager.getInstance().setAcceptThirdPartyCookies(mainWebView, true);
}
Cela permet d'autoriser les cookies Facebook ! Je vous dis pas comment j'en est chier, surtout que c'est un beug que meme facebook connaissait mais n'a pas pris le temps de résoudre :
https://developers.facebook.com/docs/facebook-login/android/v2.3
Voici la source de la solution qui m'a beaucoup aidé :
https://stackoverflow.com/questions/28197150/checking-facebook-login-state-in-a-webview-always-returns-unknown
28 mai 2015 à 13:53
- pas besoin de refaire tout le site, surtout que sur Android je suis debutant,
- pas besoin non plus de faire des mises a jour de l appli pour tout et n imp, les mises a jour sont automatiques, on se concentre uniquement sur son site web
- point non essentiel mais non négligeable , le poid de ce genre d appli ne dépasse souvent pas les 2mo, ce qui est un plus lors du téléchargement
En tout cas merci encore je continu mes recherches en prenant en compte les tiennes :)