Html Upload Problem bei WebView

  • Antworten:41
Philipp Hörig
  • Forum-Beiträge: 106

15.12.2014, 21:13:36 via Website

Hallo liebe Community ich habe mal wieder eine Frage an euch :).

U.z geht es um ein Webview, ich will in einem Webview etwas auf einen Server Hochladen ( in Html geht alles), wenn ich die Seite in Chrome öffne geht alles auch der Upload, aber wenn ich jetzt auf den Button im Webview drücke geht Garnix warum ?

image

Bitte um Hilfe :(

Lg Philipp :)

Lg Philipp // Never touch a bugging system :)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

16.12.2014, 16:47:33 via Website

Ich habe ein Problem mit dem Link b.z.w mit dem Code vom Link

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.content.Context;

import java.io.File;


public class MainActivity extends Activity {

    private static final int REQUEST_FILE_PICKER = 1;
    private ValueCallback<Uri> mUploadMessage;

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == REQUEST_FILE_PICKER) {
            if (mUploadMessage == null) return;
            Uri result = intent == null || resultCode != Activity.RESULT_OK ? null : intent.getData();
            String path = MediaUtility.getPath(getActivity(), result);
            Uri uri = Uri.fromFile(new File(path));
            mUploadMessage.onReceiveValue(uri);
            mUploadMessage = null;

        }
    }

    private WebView mWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mWebView = (WebView) findViewById(R.id.activity_main_webview);

        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        mWebView.loadUrl("[Link entfernt]");

        mWebView.setWebViewClient(new MyAppWebViewClient());


    }

    WebView.setWebChromeClient(new

    WebChromeClient() {

        public void openFileChooser (ValueCallback < Uri > uploadMsg)
        {
            mUploadMessage = uploadMsg;
            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType("image/*");
            startActivityForResult(Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER);

        }


    public void openFileChooser(ValueCallback uploadMsg, String acceptType) {
        mUploadMessage = uploadMsg;
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        intent.setType("*/*");
        startActivityForResult(Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER);
    }

    public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
        mUploadMessage = uploadMsg;
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        intent.setType("image/*");
        startActivityForResult(Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER);
    }
});

}

Das ist der Code den ich gerade habe

und jetzt habe ich folgende Fehler :

image

image

image

image

— geändert am 22.12.2014, 18:22:22 durch Moderator

Lg Philipp // Never touch a bugging system :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

16.12.2014, 19:04:12 via Website

Leider hast du wieder nicht verstanden sondern copy&paste angewendet.
Wenn du dein Code veratanden hättest dann wüsstest du dass mot

WebView.setWebChromeClient(new
WebChromeClient() {

mit der Variable webView deine Instanz gemeint ist die du in der onCreate vom Laoyut holst.
D.h. dein ganzer Code mit dem SerWeView Client muss in die onCreate mit rein.
Ab besten du ersetzt das duch diese Zeile: mWebView.setWebViewClient(new MyAppWebViewClient());
Sie wird mit deinem neuen Code überflüssig.

LG

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

21.12.2014, 17:31:10 via Website

Sorry, aber verstehe das immer noch nicht ganz was ist denn jetzt der Fehler :(

Lg Philipp :) , und sorry für die dummen Fragen aber ich verstehe das gerade nicht so :(

Lg Philipp // Never touch a bugging system :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

21.12.2014, 18:00:22 via Website

Na ja du hast einfach den Fehler gemacht, dass du den WebChromeCleint nach der onCreate initialisieren wolltest, das geht aber nicht.
Code:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

    mWebView = (WebView) findViewById(R.id.activity_main_webview);

    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    mWebView.loadUrl("[Link entfernt]");

      mWebView.setWebChromeClient(new  ///<--  Variable auf die aktuelle WebView ändern

WebChromeClient() {

    public void openFileChooser (ValueCallback < Uri > uploadMsg)
    {
        mUploadMessage = uploadMsg;
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        intent.setType("image/*");
        startActivityForResult(Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER);

    }


public void openFileChooser(ValueCallback uploadMsg, String acceptType) {
    mUploadMessage = uploadMsg;
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType("*/*");
    startActivityForResult(Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER);
}

public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
    mUploadMessage = uploadMsg;
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType("image/*");
    startActivityForResult(Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER);
}

});

}

— geändert am 22.12.2014, 18:22:53 durch Moderator

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

21.12.2014, 18:53:16 via Website

Ok danke Pascal das habe ich jetzt verstanden :)

Ich habe jetzt aber immer noch das Problem mit dem String path = MediaUtility.getPath(getActivity(), result);kannst du mir da auch helfen ?

Lg Philipp :)

Lg Philipp // Never touch a bugging system :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

21.12.2014, 19:36:47 via Website

was ist denn da das Problem ich sehe nämlich keines ;)
Und in deinem Screenshot wird auch keiner angezeigt.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

21.12.2014, 19:40:35 via Website

image

Da ist einer ! ( Zwei )

Lg Philipp // Never touch a bugging system :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

21.12.2014, 19:57:13 via Website

Nicht gleich unhöflich werden, ich bin auch nicht allwissend...

Woher hast du den Code bzw. was willst du damit bezwecken?

lass mich raten: Du machst einen Kameraintent und willst das Photo anschließend hochladen richtig?
Dann schau mal hier: http://stackoverflow.com/questions/1910608/android-action-image-capture-intent

Denn die Klasse MediaUtility existiert nicht in android, du musst den Pfad zur Datei woanders herholen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

21.12.2014, 20:47:38 via App

Ich schau mal vorbei :)

PS: Das sollte nicht unhöflich sein sorry :(

LG Philipp :)

Lg Philipp // Never touch a bugging system :)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

22.12.2014, 11:40:06 via Website

Ich habe immer noch das Problem mit dem Upload Button :(

Mein Script von der MainActivity:

public class MainActivity extends Activity {

    private static final int REQUEST_FILE_PICKER = 1;
    private ValueCallback<Uri> mUploadMessage;

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == REQUEST_FILE_PICKER) {
            if (mUploadMessage == null) return;
            Uri result = intent == null || resultCode != RESULT_OK ? null : intent.getData();
            mUploadMessage.onReceiveValue(result);
            mUploadMessage = null;
        }
    }

    private WebView mWebView;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        mWebView = (WebView) findViewById(R.id.activity_main_webview);

        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mWebView.setWebViewClient(new WebViewClient());
        mWebView.loadUrl("[Link entfernt]");

        mWebView.setWebChromeClient(new

          WebChromeClient() {

          public void openFileChooser(ValueCallback<Uri> uploadMsg) {
          mUploadMessage = uploadMsg;
          Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
          intent.addCategory(Intent.CATEGORY_OPENABLE);
          intent.setType("image/*");
          startActivityForResult(Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER);

          }


          public void openFileChooser(ValueCallback uploadMsg, String acceptType) {
          mUploadMessage = uploadMsg;
          Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
          intent.addCategory(Intent.CATEGORY_OPENABLE);
          intent.setType("*/*");
          startActivityForResult(Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER);
          }

           public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
           mUploadMessage = uploadMsg;
           Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
           intent.addCategory(Intent.CATEGORY_OPENABLE);
           intent.setType("image/*");
           startActivityForResult(Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER);
         }

         });

    }
}

Mein Script was die weiteren Links im WebView nicht in Chrome sondern im WebView öffnet :

public class MyAppWebViewClient extends WebViewClient {

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if(Uri.parse(url).getHost().endsWith("shareitalphatest.share.lc")) {
        return false;
    }

    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    view.getContext().startActivity(intent);
    return true;
}

}

So und jetzt habe ich halt das Problem mit meinem blöden Uploadbutton der immer noch nicht geht warum :( ?

Ps: Am Html Script liegt es nicht !

— geändert am 22.12.2014, 18:23:22 durch Moderator

Lg Philipp // Never touch a bugging system :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

22.12.2014, 11:58:56 via Website

Das sieht komisch aus:

Uri result = intent == null || resultCode != RESULT_OK ? null : intent.getData();
mUploadMessage.onReceiveValue(result);

Was sagt der Debugger dazu bzw. was steht in der variable result drinne?

Ich sehe jetzt noch 3 Möglichkeiten:
1. Deinen Code überarbeiten dass er funktioniert
2. Lies dir das durch: http://androidexample.com/Open_File_Chooser_With_Camera_Option_In_Webview_File_Option/index.php?view=article_discription&aid=128&aaid=148

  1. Du lässt das ganze zeugs mit der webView weg und lädst per http post den File dirket hoch

— geändert am 22.12.2014, 11:59:08

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

22.12.2014, 12:12:20 via Website

Hallo Pascal, ich nehme Möglichkeit 1 und 2, aber bei Möglichkeit 2 wird ja nur das Öffnen der Kamera beschrieben ich möchte ja wie bei Chrome die Gallery, die Kamera und den Algemeinen Handyspeicher aufrufen.
Bei der ersten Mögichkeit weiß ich halt nicht was falsch / was der Fehler ist :(

Lg Philipp :)

Ps: LogCat kommt gleich :)

Willst du das Error LogCat oder das Debug LogCat ?

— geändert am 22.12.2014, 12:17:00

Lg Philipp // Never touch a bugging system :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

22.12.2014, 12:21:16 via Website

Ist das nicht das gleioche, eigentlich interessert michwas in der Var result vom Typ Uri drinne steht.
Komen denn irgendwelche Fehlerß
Dann poste die doch auch mal.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

22.12.2014, 12:25:54 via Website

Ja das ist das Gleiche ich war gerade etwas dumm :)

Hier ist jetzt mal das ganze Error LogCat da ich nichts Löschen wollte ( ich hatte Angst es ist was wichtiges was ich löschen würde ) hier das ganze :

12-22 10:26:02.004    1301-1301/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: shareit.philipphoerig.de.shareit, PID: 1301
    java.lang.RuntimeException: Unable to start activity ComponentInfo{shareit.philipphoerig.de.shareit/shareit.philipphoerig.de.shareit.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.webkit.WebView.setWebViewClient(android.webkit.WebViewClient)' on a null object reference
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.webkit.WebView.setWebViewClient(android.webkit.WebViewClient)' on a null object reference
            at shareit.philipphoerig.de.shareit.MainActivity.onCreate(MainActivity.java:44)
            at android.app.Activity.performCreate(Activity.java:5933)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

Sorry das das so lang ist :(

Lg Philipp :)

— geändert am 22.12.2014, 12:49:14 durch Moderator

Lg Philipp // Never touch a bugging system :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

22.12.2014, 12:58:12 via Website

Ich habe mir mal erlaubt deinen Log auf den Fehler zu kürzen, sonst ist das einfach zu unübersichtlich.

So wirst du schlau aus dem Fehler?

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.webkit.WebView.setWebViewClient(android.webkit.WebViewClient)' on a null object reference
at shareit.philipphoerig.de.shareit.MainActivity.onCreate(MainActivity.java:44)

mWebView.setWebViewClient(new WebViewClient()); //<- Warum lässt du das nicht weg, du hastz doch den WebView ChromeClient
        mWebView.loadUrl("[Link entfernt]");//<- Das muss hinter den setWebViewChome client damit der neue cleint auch auf die aktuelle url übernommen wird.

        mWebView.setWebChromeClient(...

Zum besagten Fehler:
Was steht in MainActivity.java Zeile 44?

— geändert am 22.12.2014, 18:23:48 durch Moderator

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

22.12.2014, 15:45:14 via Website

Hallo Pascal, als erstes zur Nummer 1 warum ich das nicht weg lasse...

Wenn ich das weglassen würde, würde wenn ich im WebView eine neue Link öffne dieses im Standard Webbrowser passieren, also die App wird geschlossen und z.B Chrome öffnet sich.

So das zum ersten.

Zum Zweiten in der Zeile 44 steht nix :)

Zum dritten soll ich mWebView.loadUrl("[Link entfernt]");in

mWebView.setWebChromeClient(new

          WebChromeClient() {

Schreiben oder dahinter ?

— geändert am 22.12.2014, 19:18:14

Lg Philipp // Never touch a bugging system :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

22.12.2014, 16:14:08 via Website

  1. ok dann ist das nicht der Fehler
  2. Dann hast du irgendwo seit dem letzen Debuggen einen Zeilenumbruch eingefügt
  3. Ja das ist richtig. (dahinter)
  4. Vielleicht mal suchen woher oder durch was die Exception ausgeöst wird.

— geändert am 22.12.2014, 16:14:31

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

22.12.2014, 17:52:04 via Website

Ok gabe jetzt

mWebView.loadUrl("[Link entfernt]");

hinter

mWebView.setWebChromeClient(new

          WebChromeClient() {
.......
}

geschrieben

  1. Frage was hat das gebracht ?

  2. Es geht immer noch nicht weitere Ideen ?

— geändert am 22.12.2014, 18:24:25 durch Moderator

Lg Philipp // Never touch a bugging system :)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

22.12.2014, 18:02:59 via Website

Hier ist noch das aktuelle LogCat:

12-22 17:01:18.709    1345-1345/shareit.philipphoerig.de.shareit W/ActivityThread﹕ Application shareit.philipphoerig.de.shareit is waiting for the debugger on port 8100...
12-22 17:01:25.465    1345-1345/shareit.philipphoerig.de.shareit W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
12-22 17:01:25.845    1345-1368/shareit.philipphoerig.de.shareit W/AudioManagerAndroid﹕ Requires BLUETOOTH permission
12-22 17:01:25.901    1345-1345/shareit.philipphoerig.de.shareit W/chromium﹕ [WARNING:resource_bundle.cc(315)] locale_file_path.empty()
12-22 17:01:26.049    1345-1345/shareit.philipphoerig.de.shareit E/chromium﹕ [ERROR:gl_surface_egl.cc(150)] No suitable EGL configs found.
12-22 17:01:26.049    1345-1345/shareit.philipphoerig.de.shareit E/chromium﹕ [ERROR:gl_surface_android.cc(23)] GLSurfaceEGL::InitializeOneOff failed.
12-22 17:01:26.050    1345-1345/shareit.philipphoerig.de.shareit E/chromium﹕ [ERROR:browser_main_loop.cc(940)] GLSurface::InitializeOneOff failed
12-22 17:01:26.552    1345-1374/shareit.philipphoerig.de.shareit W/chromium﹕ [WARNING:proxy_service.cc(901)] PAC support disabled because there is no system implementation
12-22 17:01:26.668    1345-1345/shareit.philipphoerig.de.shareit W/chromium﹕ [WARNING:data_reduction_proxy_settings.cc(403)] SPDY proxy OFF at startup
12-22 17:01:26.863    1345-1345/shareit.philipphoerig.de.shareit W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring
12-22 17:01:26.928    1345-1345/shareit.philipphoerig.de.shareit W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring

Lg Philipp // Never touch a bugging system :)

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.958

22.12.2014, 18:19:13 via Website

Hallo Philipp,

wie sollen deine Schritte sein?

  1. einloggen
    • wie erfolgt der Login
  2. Bild aufnehmen
  3. Bild senden

EDIT: Deine Seiten-Links habe ich entfernt da dein PHP-Script (!)"gefährlich"(!) ist! Ich bitte dich entweder keine Seiten-Links einzufügen oder dein PHP-Script in Ordnung zu bringen.
Danke :-)

— geändert am 22.12.2014, 18:25:55

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

22.12.2014, 19:21:10 via Website

Hallo Ludy,

  1. Gefährlich ?

  2. Ja aber nicht nur ein Bild aufnehmen sondern aus der Gallery holen oder ein Bild machen :)

In Google Chrome ( auf dem Hnady ) geht das ja ohne Probleme ich möchte das jetzt auch im WebView haben !

Lg Philipp

— geändert am 22.12.2014, 19:24:32

Lg Philipp // Never touch a bugging system :)

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.958

22.12.2014, 19:43:52 via Website

Ja gefährlich, ich habe gerade auf deinen Server ein Screenshot hochgeladen ;-)

Ich habe schnell ne App gemacht und funktioniert.

@SuppressLint("SetJavaScriptEnabled")

public class MainBraowser extends Activity {

private WebView web;

private ValueCallback<Uri> mUploadMessage;
private final static int FILECHOOSER_RESULTCODE = 1;

@Override
protected void onActivityResult(int requestCode, int resultCode,
        Intent intent) {
    if (requestCode == FILECHOOSER_RESULTCODE) {
        if (null == mUploadMessage)
            return;
        Uri result = intent == null || resultCode != RESULT_OK ? null
                : intent.getData();
        mUploadMessage.onReceiveValue(result);
        mUploadMessage = null;
    }
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    web = (WebView) findViewById(R.id.webViewSaveBrowse);

    web = new WebView(this);
    web.getSettings().setJavaScriptEnabled(true);
    web.loadUrl("hier der Link");
    web.setWebViewClient(new myWebClient());
    web.setWebChromeClient(new WebChromeClient() {

        // For Android 3.0+
        public void openFileChooser(ValueCallback<Uri> uploadMsg) {

            mUploadMessage = uploadMsg;
            Intent i = new Intent(Intent.ACTION_GET_CONTENT);
            i.addCategory(Intent.CATEGORY_OPENABLE);
            i.setType("image/*");
            MainBraowser.this.startActivityForResult(
                    Intent.createChooser(i, "File Chooser"),
                    FILECHOOSER_RESULTCODE);

        }

        // For Android 3.0+
        public void openFileChooser(ValueCallback uploadMsg,
                String acceptType) {
            mUploadMessage = uploadMsg;
            Intent i = new Intent(Intent.ACTION_GET_CONTENT);
            i.addCategory(Intent.CATEGORY_OPENABLE);
            i.setType("*/*");
            MainBraowser.this.startActivityForResult(
                    Intent.createChooser(i, "File Browser"),
                    FILECHOOSER_RESULTCODE);
        }

        // For Android 4.1
        public void openFileChooser(ValueCallback<Uri> uploadMsg,
                String acceptType, String capture) {
            mUploadMessage = uploadMsg;
            Intent i = new Intent(Intent.ACTION_GET_CONTENT);
            i.addCategory(Intent.CATEGORY_OPENABLE);
            i.setType("image/*");
            MainBraowser.this.startActivityForResult(
                    Intent.createChooser(i, "File Chooser"),
                    MainBraowser.FILECHOOSER_RESULTCODE);

        }

    });

    setContentView(web);

}

public class myWebClient extends WebViewClient {
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        // TODO Auto-generated method stub
        super.onPageStarted(view, url, favicon);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // TODO Auto-generated method stub

        view.loadUrl(url);
        return true;

    }

    @Override
    public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);

    }
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}

}

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

22.12.2014, 23:24:16 via App

Hallo Ludy, ich habe mal drei Fragen an dich zum Script

  1. Warum ist mein PHP Script unsicher ?

2.Welches Betriebssystem hast du ?

  1. Wieso Funktioniert bei mir (Nexus 5 Android 5.0 Lollipop ) das nicht ?

LG Philipp :)

— geändert am 22.12.2014, 23:24:32

Lg Philipp // Never touch a bugging system :)

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.958

22.12.2014, 23:29:53 via App

In dem PHP kann alles hoch geladen werden log dich ein wirst du sehen. Des weiteren kann momentan jeden auf login klicken und was hochladen.

Der code ist nur bis 4.1 supportet 4.4.3 hat nen bug da funktioniert das auch nicht. ab 5.0 gibt es eine anderen Methode schau dir dazu mal die doc von Android an.

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

26.12.2014, 19:10:45 via Website

Was kann ich ändern das ich das mit 4.4 und Lollipop hinbekomme ?

Lg Philipp // Never touch a bugging system :)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

27.12.2014, 18:40:15 via Website

Macht es nicht :(

Lg Philipp // Never touch a bugging system :)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

28.12.2014, 17:30:26 via Website

Habt ihr weiter Idden ?

  • Links?

-Codes?

Lg Philipp // Never touch a bugging system :)

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.958

31.12.2014, 22:50:41 via App

Irgendwo hatte ich gelesen, das es eine Möglichkeit mit JavaScript gibt soll ne Lib dazu geben. Müsstest du mal schauen.
In der Lib wird ein JS-Code eingeschleust.

Ich kann mir das nur vorstellen das du selbst in deiner Seite ein ClickEvent einpflegst, was nur auf KK und 5 regiert.

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

02.01.2015, 20:23:05 via Website

Ok, und wie soll das gehen ?

Lg Philipp :)

Lg Philipp // Never touch a bugging system :)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

03.01.2015, 10:23:02 via Website

Ok mit dem Beispiel generiere ich ein Toast aber ich will doch ein Upload Button bekommen :(

Wie mach ich das jetzt anderes b.z.w wie mache ich jetzt den Button in den Toast ?

Lg Philipp :)

Lg Philipp // Never touch a bugging system :)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

05.02.2015, 11:52:33 via Website

Hallo Leute, ich weiß der Treade ist schon länger her aber ich habe leider in der Zeit auch keine Lösung für das Problem gefunden könnt ihr mir vielleicht weiter hier helfen ?

Ich habe ihr schon was gefunden aber habe keine ahnung wie ich das umsetzten soll:

https://developer.android.com/reference/android/webkit/WebChromeClient.html#onShowFileChooser%28android.webkit.WebView,%20android.webkit.ValueCallback%3Candroid.net.Uri%5B%5D%3E,%20android.webkit.WebChromeClient.FileChooserParams%29

und dazu weiß ich nicht ob das auch mit android 4.4 geht !

Lg Philipp :)

— geändert am 05.02.2015, 12:54:40

Lg Philipp // Never touch a bugging system :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.02.2015, 20:40:19 via Website

Wie schon mal in diesem Thread gesagt:
Warum übrehaupt eine WebView du kannst das doch alles auf android Basis machen und das Hochladen über einen HttpUploader.
Dann musst du auch keine HTMLs Designen sondern kannst alles in Android Studio machen.
Mit Javascript und einem JS Interface etc jeht es acuh, ist komplizierter und wolltest du nicht.
LG

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

18.02.2015, 15:03:51 via App

Ja, mein Problem ist das ich schon mein ganzes HTML script fertig habe
und keine Ahnung habe wie ich das jetzt alles umschreiben soll. Gibt es keine andere Möglichkeit außer das alles umzuschreiben ( bug fix oder so ) ?

LG Philipp :)

— geändert am 18.02.2015, 15:12:23

Lg Philipp // Never touch a bugging system :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

18.02.2015, 15:11:54 via App

Dann mach es mit Javascript +Interface.

Also Möglichkeiten das richtig zu machen gibt es genug. Du musst sie nur umsetzen.

LG

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

18.02.2015, 15:36:03 via App

Was meinst du mit richtig machen ?

LG Philipp :)

Lg Philipp // Never touch a bugging system :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

18.02.2015, 15:42:32 via App

Damit meine ich einen Manuellen Bugfix des UploadDialoges in Android 4.4.2 -5.0

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Philipp Hörig
  • Forum-Beiträge: 106

19.02.2015, 21:21:39 via App

Heißt ich muss auf der Seite wo ich das hochlade die Verbindung zu MySQL und zur Kamera alles in Java schreiben und nicht mehr auf der Website selber ?!

— geändert am 19.02.2015, 21:22:24

Lg Philipp // Never touch a bugging system :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

19.02.2015, 21:39:52 via Website

Entweder so ;) dann hast du alles in Android und brachust keine Webseite mehr, das hast den Vorteil, dass du in Android alles schön in einer ListView etc. Darstellen kannst und native Funktionen nutzen wie z.b. versenden/teilen oder bearbeiten etc.
Das hast du aus dem web nicht.

Andere möglichkeit.
Hinterlege auf deinen HTML Seiten JavscriptCode der dann von deiner App richtg behadelt wird. (Muss dann auch in Java implementiert werden)
So kannst du auch einen Upload machen.

Aber nocheinmal erkläre ich dir diese schritte nicht...

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten