2017-02-21 11 views
0

У меня есть веб-сайт электронной коммерции WordPress, использующий WooCommerce для управления инвентарем. Тот же инвентарь, который я использую для своего приложения для Android, с помощью API для обслуживания WooCommerce.Как сохранить сеанс на моем сайте электронной коммерции WordPress, используя WooCommerce и мое приложение для Android, используя API для поддержки WooCommerce?

Теперь мне нужно поддерживать сеанс пользователя в обоих местах. Например, если пользователь регистрируется на веб-сайте и помещает некоторые предметы в корзину, а затем открывает свое приложение, там также должны находиться те же предметы в корзине.

Пожалуйста, дайте мне знать, как пользователь может войти в свою учетную запись из приложения Android, а затем правильный сеанс должен поддерживаться между приложением и веб-сайтом.

Этому нужно достичь с использованием API для отдыха WooCommerce. Или есть другой способ?

ответ

0

Сессия полезна, когда вы хотите хранить данные пользователя глобально через приложение. Это можно сделать двумя способами. Один из них хранит их в глобальных переменных, а второй хранит данные в общих предпочтениях. Проблема с хранением данных в глобальной переменной заключается в том, что данные будут потеряны после закрытия пользователем приложения, но сохранение данных в общих предпочтениях будет постоянным, даже если пользователь закрывает приложение.

найти полную реализацию в ссылке ниже:

http://www.androidhive.info/2012/08/android-session-management-using-shared-preferences/

SessionManagement.java

package com.androidhive.sessions; 

import java.util.HashMap; 

import android.content.Context; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.content.SharedPreferences.Editor; 

public class SessionManager { 
    // Shared Preferences 
    SharedPreferences pref; 

    // Editor for Shared preferences 
    Editor editor; 

    // Context 
    Context _context; 

    // Shared pref mode 
    int PRIVATE_MODE = 0; 

    // Sharedpref file name 
    private static final String PREF_NAME = "AndroidHivePref"; 

    // All Shared Preferences Keys 
    private static final String IS_LOGIN = "IsLoggedIn"; 

    // User name (make variable public to access from outside) 
    public static final String KEY_NAME = "name"; 

    // Email address (make variable public to access from outside) 
    public static final String KEY_EMAIL = "email"; 

    // Constructor 
    public SessionManager(Context context){ 
     this._context = context; 
     pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE); 
     editor = pref.edit(); 
    } 

    /** 
    * Create login session 
    * */ 
    public void createLoginSession(String name, String email){ 
     // Storing login value as TRUE 
     editor.putBoolean(IS_LOGIN, true); 

     // Storing name in pref 
     editor.putString(KEY_NAME, name); 

     // Storing email in pref 
     editor.putString(KEY_EMAIL, email); 

     // commit changes 
     editor.commit(); 
    } 

    /** 
    * Check login method wil check user login status 
    * If false it will redirect user to login page 
    * Else won't do anything 
    * */ 
    public void checkLogin(){ 
     // Check login status 
     if(!this.isLoggedIn()){ 
      // user is not logged in redirect him to Login Activity 
      Intent i = new Intent(_context, LoginActivity.class); 
      // Closing all the Activities 
      i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

      // Add new Flag to start new Activity 
      i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

      // Staring Login Activity 
      _context.startActivity(i); 
     } 

    } 



    /** 
    * Get stored session data 
    * */ 
    public HashMap<String, String> getUserDetails(){ 
     HashMap<String, String> user = new HashMap<String, String>(); 
     // user name 
     user.put(KEY_NAME, pref.getString(KEY_NAME, null)); 

     // user email id 
     user.put(KEY_EMAIL, pref.getString(KEY_EMAIL, null)); 

     // return user 
     return user; 
    } 

    /** 
    * Clear session details 
    * */ 
    public void logoutUser(){ 
     // Clearing all data from Shared Preferences 
     editor.clear(); 
     editor.commit(); 

     // After logout redirect user to Loing Activity 
     Intent i = new Intent(_context, LoginActivity.class); 
     // Closing all the Activities 
     i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

     // Add new Flag to start new Activity 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

     // Staring Login Activity 
     _context.startActivity(i); 
    } 

    /** 
    * Quick check for login 
    * **/ 
    // Get Login State 
    public boolean isLoggedIn(){ 
     return pref.getBoolean(IS_LOGIN, false); 
    } 
}