Java 如何将登录凭据作为“活动”中的会话变量维护/发送到webview

Java 如何将登录凭据作为“活动”中的会话变量维护/发送到webview,java,android,session,webview,Java,Android,Session,Webview,我正在本地应用程序中存储用户的登录名和密码。我需要将其作为会话变量发送到webview url 在php文件中,我将以$\u POST['email']的形式检索它。甚至我也从活动中成功检索到响应 但是会话在其他页面中丢失 那么,如何维护或向webview发送凭据 public class Mainactivity extends Activity { //private Button button; private WebView webview; private static final

我正在本地应用程序中存储用户的登录名和密码。我需要将其作为会话变量发送到webview url

在php文件中,我将以
$\u POST['email']
的形式检索它。甚至我也从活动中成功检索到响应

但是会话在其他页面中丢失

那么,如何维护或向webview发送凭据

public class Mainactivity extends Activity {

//private Button button;

private WebView webview;
private static final String TAG = "Main";
private ProgressDialog progressBar;
SharedPreferences preferences;
public static final String Email = "emailKey";
public static final String Password = "passKey";
public static final String PhoneNum = "phonekey";
String URL = "http://myweb.com/index.php";
int success;
 private static final String TAG_SUCCESS = "success";
 JSONParser jsonParser = new JSONParser();

@SuppressLint("NewApi") /** Called when the activity is first created. */@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
  //  requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.web);
    this.webview = (WebView) findViewById(R.id.webView1);
    WebSettings settings = webview.getSettings();
    settings.setRenderPriority(RenderPriority.HIGH);
    settings.setJavaScriptEnabled(true);
    webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    webview.loadUrl(URL);

    new SetSession().execute();

    final AlertDialog alertDialog = new AlertDialog.Builder(this).create();

   // progressBar = ProgressDialog.show(Mainactivity.this, "Please wait a moment we are setting up environment", "Loading...");

    webview.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            Log.i(TAG, "Processing webview url click...");
            view.loadUrl(url);
            return true;
        }

        public void onPageFinished(WebView view, String url) {
            Log.i(TAG, "Finished loading URL: " + url);
            if (progressBar.isShowing()) {
                progressBar.dismiss();
            }
        }

        @SuppressWarnings("deprecation")
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            Log.e(TAG, "Error: " + description);
            Toast.makeText(Shop.this, "Oh no! " + description, Toast.LENGTH_SHORT).show();
            alertDialog.setTitle("Error");
            alertDialog.setMessage(description);
            alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    return;
                }
            });
            alertDialog.show();
        }
    });
        CookieSyncManager.createInstance(this);
    CookieManager localCookieManager = CookieManager.getInstance();
    if (Build.VERSION.SDK_INT >= 21) {
      localCookieManager.setAcceptThirdPartyCookies(this.webview, true);
    }
    if (Build.VERSION.SDK_INT >= 19) {
        webview.setLayerType(View.LAYER_TYPE_HARDWARE, null);
    }       
    else {
        webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    }
    Log.i("letzkit360", "At onCreate");
    webview.getSettings().setCacheMode(1);

}
class SetSession extends AsyncTask<String, String, String> {


    @Override
    protected void onPreExecute() {
        // TODO Auto-generated method stub
        super.onPreExecute();
        progressBar = ProgressDialog.show(MainActivity.this, "Please wait a moment we are setting up environment", "Loading...");
        progressBar.setIndeterminate(false);
        progressBar.setCancelable(true);
        progressBar.show();
    }

    @Override
    protected String doInBackground(String... args) {
        preferences = getSharedPreferences("prefs", Context.MODE_PRIVATE);
        String email = preferences.getString(PhoneNum, "");
        String password = preferences.getString(Password, "");

        Log.d("email", email);
        Log.d("password",password);
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("PhoneNum", email));
        params.add(new BasicNameValuePair("password", password));

        JSONObject json =   jsonParser.makeHttpRequest(URL, "POST", params);        
        Log.d("Shop JSON", ""+json);


        return null;
    }
    @Override
    protected void onPostExecute(String result) {
        // TODO Auto-generated method stub
         progressBar.dismiss();
        super.onPostExecute(result);
    }
}
}
公共类Mainactivity扩展活动{
//私人按钮;
私有网络视图;
私有静态最终字符串TAG=“Main”;
私人ProgressDialog progressBar;
共享参考偏好;
公共静态最终字符串Email=“emailKey”;
公共静态最终字符串Password=“passKey”;
公共静态最终字符串PhoneNum=“phonekey”;
字符串URL=”http://myweb.com/index.php";
成功;
私有静态最终字符串标记_SUCCESS=“SUCCESS”;
JSONParser JSONParser=新的JSONParser();
@SuppressLint(“NewApi”)/**在首次创建活动时调用。*/@Override
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//requestWindowFeature(窗口。功能\u无\u标题);
setContentView(R.layout.web);
this.webview=(webview)findviewbyd(R.id.webView1);
WebSettings=webview.getSettings();
settings.setRenderPriority(RenderPriority.HIGH);
settings.setJavaScriptEnabled(true);
webview.setScrollBarStyle(webview.SCROLLBARS\u外部\u覆盖);
loadUrl(URL);
新建SetSession().execute();
final AlertDialog AlertDialog=新建AlertDialog.Builder(this.create();
//progressBar=ProgressDialog.show(Mainactivity.this,“请稍候,我们正在设置环境”,“正在加载…”);
setWebViewClient(新的WebViewClient(){
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
i(标记“正在处理webview url单击…”);
view.loadUrl(url);
返回true;
}
公共void onPageFinished(WebView视图,字符串url){
Log.i(标记“已完成加载URL:+URL”);
if(progressBar.isShowing()){
progressBar.disclose();
}
}
@抑制警告(“弃用”)
public void onReceivedError(WebView视图、int错误代码、字符串描述、字符串失败URL){
Log.e(标记“错误:+说明”);
Toast.makeText(Shop.this,“噢,不!”+描述,Toast.LENGTH_SHORT.show();
alertDialog.setTitle(“错误”);
alertDialog.setMessage(描述);
alertDialog.setButton(“确定”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
返回;
}
});
alertDialog.show();
}
});
CookieSyncManager.createInstance(此);
CookieManager localCookieManager=CookieManager.getInstance();
如果(Build.VERSION.SDK_INT>=21){
localCookieManager.setAcceptThirdPartyCookies(this.webview,true);
}
如果(Build.VERSION.SDK_INT>=19){
webview.setLayerType(View.LAYER\u TYPE\u硬件,空);
}       
否则{
webview.setLayerType(View.LAYER\u TYPE\u软件,空);
}
Log.i(“letzkit360”,“At onCreate”);
webview.getSettings().setCacheMode(1);
}
类SetSession扩展异步任务{
@凌驾
受保护的void onPreExecute(){
//TODO自动生成的方法存根
super.onPreExecute();
progressBar=ProgressDialog.show(MainActivity.this,“请稍候,我们正在设置环境”,“正在加载…”);
progressBar.SetUndeterminate(假);
progressBar.setCancelable(真);
progressBar.show();
}
@凌驾
受保护的字符串doInBackground(字符串…args){
preferences=getSharedReferences(“prefs”,Context.MODE\u PRIVATE);
字符串email=preferences.getString(PhoneNum,“”);
字符串密码=preferences.getString(密码“”);
Log.d(“电子邮件”,电子邮件);
Log.d(“密码”,密码);
List params=new ArrayList();
添加(新的BasicNameValuePair(“PhoneNum”,电子邮件));
添加(新的BasicNameValuePair(“密码”,password));
JSONObject json=jsonParser.makeHttpRequest(URL,“POST”,参数);
Log.d(“Shop JSON”,即“+JSON”);
返回null;
}
@凌驾
受保护的void onPostExecute(字符串结果){
//TODO自动生成的方法存根
progressBar.disclose();
super.onPostExecute(结果);
}
}
}

这不是PHP,这是JAVA。我添加了PHP标记,因为我使用的是使用PHP的服务器端实现。这就是为什么我添加了标签“PHP”。