Android 带令牌的 WebView 无法访问该帐户

Android WebView with token cannot access to the account

我尝试通过 WebView 访问我的网站,但在向我的用户显示 WebView 之前,他们必须输入用户名和密码,然后他们才能在 WebView 中看到他们的帐户仪表板。 问题是实际上我可以保留我的 auth_token 并将其存储到 SharedPreferences 中,但是在我如何对我的 webview 说该用户已经完成登录并且已经 auth_token 之后? 我会允许我的用户在我的 android 应用程序上使用该网站。 这是代码: public class Login_Page 扩展 Activity{ 私人 SharedPreferences mPreferences;

String token="";
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login_page);
    mPreferences = getSharedPreferences("CurrentUser", MODE_PRIVATE);}

public void LaunchWebView(View view) {
    WebView myWebView = (WebView) findViewById(R.id.myWebView);
    SharedPreferences prefs =PreferenceManager.getDefaultSharedPreferences(this);
    String token2= mPreferences.getString("auth_token","");

    HashMap<String, String> map = new HashMap<String, String>();

    String sessionCookie = "staging=" + token;
    map.put("auth_token",token2);

    myWebView.loadUrl("url", map);
}
}

我解决了这个问题并重写了代码,这里是我修改的内容:

public class Login_Page extends Activity{
private SharedPreferences mPreferences;

String token="";
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login_page);
    mPreferences = getSharedPreferences("CurrentUser", MODE_PRIVATE);

}

@SuppressLint("NewApi")
public void LaunchWebView(View view) {

    WebView myWebView = (WebView) findViewById(R.id.myWebView);
    myWebView.getSettings().setJavaScriptEnabled(true);
    myWebView.getSettings().setSaveFormData(false);

    CookieSyncManager.createInstance(this);
    CookieSyncManager.getInstance().startSync();
    CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);
    CookieManager.getInstance().setAcceptThirdPartyCookies(myWebView, true);

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    String token2= mPreferences.getString("auth_token","");

    HashMap<String, String> map = new HashMap<String, String>();
    map.put("x-auth-token", token2);
    myWebView.getSettings().setAppCacheEnabled(true);
    myWebView.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view,String url) {
            view.loadUrl(url);
            return true;
        }
    });
    myWebView.loadUrl("https://www.photospotland.com/spots/where", map);
}
}

我希望这可以帮助别人。 谢谢