我尝试通过WebView访问我的网站,但在向用户展示WebView之前,他们必须输入用户名和密码,之后他们就可以在WebView中看到他们的帐户信息中心。 问题是,实际上我可以保留我的auth_token并将其存储到SharedPreferences中,但之后我可以对我的webview说这个用户已经完成了登录并且已经有了auth_token? 我允许我的用户在我的Android应用程序上使用该网站。 这是代码: 公共类Login_Page扩展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);}
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);
}
}
答案 0 :(得分:0)
我解决了这个问题并且我重写了代码,这里我修改了:
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);
}
}
我希望这可以帮助别人。 感谢。