2017-07-15 110 views
0

我正在使用webView加載網頁的Android應用程序。我正在使用的網頁有一個登錄表單,我可以使用該表單登錄並執行我的操作。問題是當我關閉應用程序(退出它)並打開我要做的登錄應用程序時再次登錄。如何保存登錄信息,以便在打開我的應用程序時不必登錄?如何在WebView應用程序上保存登錄信息?

在關閉應用程序之前是否有任何方法可以保存所有信息?

+0

覆蓋的onPause和方法的onResume像這裏做https://stackoverflow.com/questions/32832845/ webview-is-not-restoring-the-state-after-was-killed-by-the-user –

+0

謝謝它工作:) –

回答

0

您必須先在您的webview上註冊JavaScriptInterface。 JavaScriptInterFace可以是一個內部類,如下所示。這個類將有一個函數,你可以從html頁面調用(通過javaScript),在這個函數中你可以編寫代碼來改變活動。

這裏是你工作的解決方案:

public class JavascriptInterfaceActivity extends Activity { 
    /** Called when the activity is first created. */ 


    WebView wv; 

    JavaScriptInterface JSInterface; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     wv = (WebView)findViewById(R.id.webView1); 

     wv.getSettings().setJavaScriptEnabled(true); 
     // register class containing methods to be exposed to JavaScript 

     JSInterface = new JavaScriptInterface(this); 
     wv.addJavascriptInterface(JSInterface, "JSInterface"); 

     if(not_logged_in){ 
     wv.loadUrl("file:///android_asset/myPage.html"); 
     } 


    } 


    public class JavaScriptInterface { 
     Context mContext; 

     /** Instantiate the interface and set the context */ 
     JavaScriptInterface(Context c) { 
      mContext = c; 
     } 

     @android.webkit.JavascriptInterface 
     public void login_success() 
     { 
      // save login success. 
     } 
    } 
} 

下面是HTML頁面

<html> 
<head> 
<script type="text/javascript"> 
function displaymessage() 
{ 
JSInterface.login_success(); 
} 
</script> 
</head> 

<body> 
<form> 
<input type="button" value="Click me!" onclick="displaymessage()" /> 
</form> 
</body> 
</html> 
+0

感謝您的幫助:) –

+0

@ ShantanuPatil如果它是有用的..然後接受它作爲回答。 –

相關問題