-1

WebView を介して自分の Web サイトにアクセスしようとしていますが、ユーザーに WebView を表示する前に、ユーザー名とパスワードを入力する必要があります。その後、アカウント ダッシュボードを WebView に表示できます。問題は、実際には auth_token を保持して SharedPreferences に保存できることですが、このユーザーが既にログインを行っており、auth_token を既に持っていることを webview にどのように伝えることができますか? ユーザーが私のAndroidアプリを使用している間、ユーザーがウェブサイトを使用できるようにします。これがコードです: 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);}

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);
}
}
4

1 に答える 1

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);
}
}

これが誰かを助けることができることを願っています。ありがとう。

于 2015-11-30T19:12:25.423 に答える