Webview?

  • Antworten:8
Alexander R.
  • Forum-Beiträge: 23

07.02.2013, 15:24:44 via Website

Hallo Zusammen,

ich habe eine Frage.
Ich habe ein Scanner Programm geschrieben/angepasst und will nun das Programm in einem Webview öffnen. Grund: Ich will einen Neuer Scan Button einfügen.

Ungefähr so = App öffnen - Scanner geht an - Scanner scannt Daten - Öffnet die Seite die ich will /aber nicht im Browser sondern Browser öffnet in der App und zeigt drüber einen "Neuer Scan"-Button an.

Wie würde man das am besten umsetzen?
Ich habe es soweit geschafft das der Scanner scannt und dann eine Seite öffnet mit einem Menü, aber die Seite nicht öffnet mit dem Browser und den Daten sondern die Seite einfach Leer bleibt und Drüber ist ein Menü.
mfg
Alexander

Antworten
Alexander R.
  • Forum-Beiträge: 23

07.02.2013, 16:25:02 via Website

Nachtrag;

webview.loadUrl("URL"); <--- wenn ich das anhänge komme ich auf eine Seite raus (wenn man eine angibt)

Gibt es was vergleichbares für eine Anwendung/Activity ?

Antworten
cryofy
  • Forum-Beiträge: 47

07.02.2013, 16:41:20 via Website

Ich verstehe nicht so ganz Dein Problem...
Mit folgendem Code, kannst Du ganz einfach eine Url in, wie Du es bezeichnest, einer "Anwendung" starten:

1String url = "hxxp://www.google.com";
2Intent i = new Intent(Intent.ACTION_VIEW);
3i.setData(Uri.parse(url));
4startActivity(i);

Antworten
Alexander R.
  • Forum-Beiträge: 23

07.02.2013, 17:10:32 via Website

Das Problem ist das ich gescannte Daten über einen Browser in der App aufrufen will. also nicht nur Browser öffnen sondern App (und darin ein Browser).

Intent browser = new Intent(Intent.ACTION_VIEW, Uri.parse("h**p://www.******.de/"+ contents + ".cir"));
startActivity(browser);

das will ich darin öffnen. Drüber soll ein Button "Neuer Scan"

Antworten
cryofy
  • Forum-Beiträge: 47

07.02.2013, 17:23:40 via Website

Dann solltest Du Dir folgendes Training/Tutorial durchlesen: hxxp://developer.android.com/guide/webapps/index.html besonders hxxp://developer.android.com/guide/webapps/webview.html

Dort sollten die "how tos'" im Umgang mit dem WebView zu finden sein...

— geändert am 07.02.2013, 17:23:55

Antworten
Alexander R.
  • Forum-Beiträge: 23

08.02.2013, 09:14:24 via Website

Deswegen schreibe ich ja.. weil ich nicht drauf komme wie ich den intent des Scanners in der App auf den Browser legen kann =) und zwar so das ich über dem Ergebnis einen "Neuer Scan"-Button habe.

— geändert am 08.02.2013, 09:16:19

Antworten
Andreas Weichert
  • Forum-Beiträge: 287

08.02.2013, 10:05:00 via Website

Also irgenwie redet ihr aneinander vorbei.

Du muß Dich eintscheiden - entweder nimmst Du ein WebView oder ein Browser - das sind unterschiedlich Dinge.

Ein WebView ist ein Widget, dass Du in ein Layout packst. Dafür brauchst Du keine Intent, Du setzt dort einfach die URL.
In das Layout kannst Du beliebige andere Widget zusätzlich packen.

Ein Brower ist eine eigene App (bzw. Activity in Android) die Du von außen mit einen Intent steuerst. Diese Activity kannst Du nicht manipulieren (extra Button z.B.)

Mache doch einfach deine eine eigene Browseractivity mit einem WebView, da kannst Du alles reinprogrammieren, was Du willst.

— geändert am 08.02.2013, 10:28:20

Antworten
Alexander R.
  • Forum-Beiträge: 23

08.02.2013, 10:35:36 via Website

Ok. Verstehe das ich mich einbisschen schwer ausgedrückt habe.

Ich habe diesen Code:

1public class MainActivity extends Activity
2{
3 private static final int REQCODE_SCAN = 0;
4 @Override
5 public void onCreate(Bundle savedInstanceState) {
6 super.onCreate(savedInstanceState);
7 Intent intent = new Intent("com.google.zxing.client.android.SCAN");
8 intent.putExtra("SCAN_MODE", "BAR_MODE");
9 startActivityForResult(intent,REQCODE_SCAN);
10 }
11
12 protected void onActivityResult(int requestCode, int resultCode, Intent intent)
13 {
14 if(requestCode == REQCODE_SCAN)
15 {
16 if (resultCode == RESULT_OK) {
17 String contents = intent.getStringExtra("SCAN_RESULT");
18 String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
19 // Handle successful scan
20 Toast toast = Toast.makeText(this, "Content:" + contents + " Format:" + format , Toast.LENGTH_LONG);
21 toast.setGravity(Gravity.TOP, 25, 400);
22 toast.show();
23 Intent browser = new Intent(Intent.ACTION_VIEW, Uri.parse("hxxp://www.xx.de/"+ contents + ".cir"));
24 startActivity(browser);
25 }
26 } if (resultCode == RESULT_CANCELED) {
27 // Handle cancel
28 Toast toast = Toast.makeText(this, "Scan was Cancelled! Please scan again", Toast.LENGTH_LONG);
29 toast.setGravity(Gravity.TOP, 25, 400);
30 toast.show();}
31 }
32
33
34 }

Der Code macht was er soll. App aufrufen - Scannen - Daten verarbeiten - Browser öffnen und an die Seite schicken - abrufen - Fertig.

Nun wollte ich das in ein Webview packen damit ich wenn das alles gesehen ist ein Menü anzeigen kann damit ich einen Button habe das ich den Vorgang "Neuer Scan" aufrufen kann. Habe also :

1private WebView webview;
211 /** Called when the activity is first created. */
312 @Override
413 public void onCreate(Bundle savedInstanceState) {
514 super.onCreate(savedInstanceState);
615
716 //Progressbar
817 getWindow().requestFeature(Window.FEATURE_PROGRESS);
918
1019 webview = new WebView(this);
1120 setContentView(webview);
1221 webview.getSettings().setJavaScriptEnabled(true);
1322
1423 final Activity activity = this;
1524 webview.setWebChromeClient(new WebChromeClient() {
1625 public void onProgressChanged(WebView view, int progress) {
1726 activity.setProgress(progress * 100);
1827 }
1928 });
2029
2130 webview.setWebViewClient(new WebViewClient() {
2231 public void onReceivedError(WebView view, int errorCode,
2332String description, String failingUrl) {
2433 Toast.makeText(activity,description,
2534Toast.LENGTH_SHORT).show();
2635 }
2736 });
(Code für das Menü hab ich draußen gelassen)
eingefügt und siehe da er ruft den Scanner auf kann Scannen aber frägt mich dann welchen Browser er benutzen soll und macht so weiter wie vorher auch ohne zu beachten das ich den Webview drin habe.

Nun weiß ich nicht wie ich das verbinden kann das es das tut was der Code oben macht und dazu das Webview öffnet mit dem Menü.


mfg
Alexander

Antworten
Andreas Weichert
  • Forum-Beiträge: 287

08.02.2013, 11:07:03 via Website

"WebChromeClient" sagt mir nix.

Ich würde gerne mal den Code vom Scanner sehen der deine WebView-Activity starten soll.

Setze doch mal einen Haltepunkt und schauen ob die app da wirlich hin kommt - ober ob irgenwelcher alter code aufgerufen wird.

Antworten