- Forum-Beiträge: 101
07.03.2014, 20:20:13 via Website
07.03.2014 20:20:13 via Website
Mein Problem ist nun, dass das eben nicht immer funktioniert... Ich habe den Eindruck, dass man sich erst eine Weile auf der Website befinden muss, damit man die App schließen kann, sie wieder öffnet und sich direkt die Unterseite öffnet. Das ganze schreibe ich in AndroidStudio. Meine App benötigt zur zeit nur die Berechtigung für Internet Zugang. Es ist auch denkbar, dass die Website das Problem verursacht, weil diese schon sehr alt und auch ziemlich schlecht programmiert ist. Aber irgendwie muss es ja eine Lösung geben...
Hier mein Code der MainActivity:
2
3import android.app.Activity;
4import android.app.AlertDialog;
5import android.net.Uri;
6import android.os.Bundle;
7import android.view.MenuItem;
8import android.content.Context;
9import android.content.Intent;
10import android.support.v4.app.NavUtils;
11import android.view.Menu;
12import android.view.View;
13import android.view.View.OnClickListener;
14import android.view.WindowManager;
15import android.view.inputmethod.InputMethodManager;
16import android.webkit.CookieManager;
17import android.webkit.CookieSyncManager;
18import android.webkit.WebView;
19import android.webkit.WebViewClient;
20import android.widget.EditText;
21import android.widget.Toast;
22
23public class MainActivity extends Activity {
24
25
26 private View buttonLogin;
27 private EditText etusername;
28 private EditText etpassword;
29 private WebView wv;
30 private boolean send;
31
32 @Override
33 protected void onCreate(Bundle savedInstanceState) {
34 super.onCreate(savedInstanceState);
35 setContentView(R.layout.activity_main);
36 setTitle("Vertretungsplan");
37
38 InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
39 getWindow().setSoftInputMode(
40 WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
41
42 buttonLogin = findViewById(R.id.btlogin);
43 send = false;
44 wv = (WebView) findViewById(R.id.wv);
45 etusername = (EditText) findViewById(R.id.etusername);
46 etpassword = (EditText) findViewById(R.id.etpassword);
47
48 //SHAREDPREFS:FIRSTRUN
49 boolean firstrun = getSharedPreferences("PREFERENCE", MODE_PRIVATE).getBoolean("firstrun", true);
50 if (firstrun){
51
52
53 wv.setVisibility(View.INVISIBLE);
54
55 buttonLogin.setOnClickListener(new OnClickListener() {
56
57 private String username;
58 private String password;
59
60
61
62 @Override
63 public void onClick(View v) {
64 InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
65 getWindow().setSoftInputMode(
66 WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
67 wv.setVisibility(View.VISIBLE);
68
69
70 username = etusername.getText().toString();
71
72 password = etpassword.getText().toString();
73
74
75
76 wv.getSettings().setBuiltInZoomControls(true);
77 CookieManager.getInstance().setAcceptCookie(true);
78 wv.getSettings().setJavaScriptEnabled(true);
79 wv.getSettings().setLoadWithOverviewMode(true);
80 wv.setWebViewClient(new WebViewClient() {
81
82 @Override
83 public boolean shouldOverrideUrlLoading(WebView view, String url) {
84 view.loadUrl(url);
85 return true;
86 }
87 String text = "yes";
88 @Override
89 public void onPageFinished(WebView view, String url) {
90 if(!send) {
91 view.loadUrl("javascript:{" +
92 "document.getElementById('mod_login_username').value='" + username + "';" +
93 "document.getElementById('mod_login_password').value = '" + password + "';" +
94 "document.getElementById('mod_login_remember').checked='true';" +
95 "var form = document.getElementsByName('login');" +
96 "form[0].submit();};"
97 );
98 send = true;
99 }
100 }
101 });
102
103 wv.loadUrl("http://www.ggnauen.de/index.php?option=com_frontpage&Itemid=1");
104 }
105
106 });
107
108
109 }
110
111
112
113 // Save the state
114 getSharedPreferences("PREFERENCE", MODE_PRIVATE)
115 .edit()
116 .putBoolean("firstrun", false)
117 .commit();
118
119
120 wv.getSettings().setBuiltInZoomControls(true);
121 CookieManager.getInstance().setAcceptCookie(true);
122 wv.getSettings().setJavaScriptEnabled(true);
123 wv.getSettings().setLoadWithOverviewMode(true);
124 wv.getSettings().setUseWideViewPort(true);
125 wv.loadUrl("http://www.ggnauen.de/index.php?option=com_content&task=category§ionid=2&id=19&Itemid=100");
126 wv.setWebViewClient(new WebViewClient() {
127
128 @Override
129 public boolean shouldOverrideUrlLoading(WebView view, String url) {
130 view.loadUrl(url);
131 return true;
132 }
133
134 });
135 }
136
137
138
139
140 @Override
141 public boolean onCreateOptionsMenu(Menu menu) {
142 // Inflate the menu; this adds items to the action bar if it is present.
143 getMenuInflater().inflate(R.menu.raumplan, menu);
144 return true;
145 }
146 @Override
147 public boolean onOptionsItemSelected(MenuItem item) {
148 // Handle item selection
149 switch (item.getItemId()) {
150 case R.id.mclose:
151 finish();
152 return true;
153 case R.id.msettings:
154 startActivity(new Intent(this, SettingsActivity.class));
155 return true;
156 case R.id.mhome:
157 startActivity(new Intent(this, MainActivity.class));
158 return true;
159 case R.id.mraumplan:
160 startActivity(new Intent(this, RaumplanActivity.class));
161 return true;
162 case android.R.id.home:
163 NavUtils.navigateUpFromSameTask(this);
164 return true;
165 case R.id.mbewerten:
166 Intent i = new Intent(Intent.ACTION_SEND);
167 i.setType("message/rfc822");
168 i.putExtra(Intent.EXTRA_EMAIL, new String[]{"tbremer19@gmail.com"});
169 i.putExtra(Intent.EXTRA_SUBJECT, "Feedback: GGN Vertretungsplan App");
170 try {
171 startActivity(Intent.createChooser(i, "Email senden..."));
172 } catch (android.content.ActivityNotFoundException ex) {
173 Toast.makeText(MainActivity.this, "Keine App zum Verschicken einer Email gefunden!", Toast.LENGTH_SHORT).show();
174 }
175 return true;
176 default:
177 return super.onOptionsItemSelected(item);
178 }
179 }
180
181}
Weiß jemand eine Lösung für mein Problem? Die App soll an meiner Schule eingestzt werden und da können die Schüler nicht einfach die Daten löschen und es noch einmal versuchen.
Vielen Dank
Tim
Der Startbildschirm (wird nur beim ersten App-Start angezeigt). Wenn man den Button klickt, wird die WebView dahinter sichtbar gemacht und man wird angemeldet.
So soll es dann bei jedem weiteren App-Start aussehen. Das ist die Unterseite, man ist noch angemeldet. (WebView gezoomt)
So sieht es aber manchmal aus. Das ist die Unterseite, man ist nicht angemeldet. (WebView gezoomt)
— geändert am 07.03.2014, 20:43:29
LG Optimus Me mit Root
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.