# WebView Linkvertise lädt nicht richtig oder bleibt grau



## wer112 (31. Dez 2022)

Habe ein einfachen WebView erstellt, um ja die Links direkt in der App aufzurufen.
Das Webview funktioniert eigentlich. Ich kann Googel und das Java Forum aufrufen.
Wenn ich Über Googel Linkvertise in den Suchergebnisse aufrufe, dann habe ich ein Schwarzen Balken und ein graues Feld.
Wenn ich den Link von der Datenbank nehme, dann habe ich nur ein graues Feld.
Ich finde nixs, wiso bei Linkvertise alles grau bleibt und den bekannten anderen Links geht das.
Über jeden anderen Browser funktioniert Linkvertise, nur nicht in WebView.

Habt ihr eine Idee, woran es liegen kann und wie ich es beheben kann?

Habe eine Network Security hinzugefügt, habe die Internet Permission, hat alles nixs gebracht. ICh durchforste das Internet, aber ich finde nixs, wie man das beheben kann.

Ich hoffe, ihr könnt mir helfen.

Ich bedanke mich jetzt schon mal =)


----------



## Jw456 (31. Dez 2022)

Tipp : Diese Webseiten werden wohl Javascript und Co benutzen. Und keine statische Webseite.

Cleartext könnte auch noch ein Punkt sein.


----------



## wer112 (31. Dez 2022)

Jw456 hat gesagt.:


> Tipp : Diese Webseiten werden wohl Javascript und Co benutzen. Und keine statische Webseite.


JavaScript ist auf true bei den settings


Jw456 hat gesagt.:


> Cleartext könnte auch noch ein Punkt sein.


Wenn es die Security ist, dann ist es auf True:

```
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>
```

Dann habe ich die permission:


```
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
```

Dann die Security in Manifest hinzugefügt:


```
android:usesCleartextTraffic="true"
        android:networkSecurityConfig="@xml/network_security_config"
```

dann das Webview:


```
WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setBuiltInZoomControls(true);
        webSettings.setDisplayZoomControls(false);
        webSettings.setAllowContentAccess(true);
        webSettings.setAllowFileAccess(true);
        webSettings.setLoadsImagesAutomatically(true);
        webSettings.setUseWideViewPort(true);
        webSettings.setSupportMultipleWindows(true);
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);



        webView.setWebViewClient(new MyWebViewClint());

        webView.loadUrl(url);
        
        Log.e("URL", url);
        

    }

    void loadUrl(String url){
        boolean matchUrl = Patterns.WEB_URL.matcher(url).matches();
        if(matchUrl){
            webView.loadUrl(url);
        }else{
            webView.loadUrl("google.com/search?q="+url);
        }
    }

    class MyWebViewClint extends WebViewClient{



        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            return false;
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            progressBar.setVisibility(View.VISIBLE);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            progressBar.setVisibility(View.INVISIBLE);
        }
    }
```

Kennst du eine Website die nicht statich ist? Da kann ich die Probieren. 

Die Webseiten gehen: 
googel.com
web.de
spielaffe.de
php.de
java-forum.org
gutefrage.net
dann meine
all-inkl.com

Also kennst du welche die das nicht static ist? Die würde ich gerne Testen.
Und was kann ich machen, das auch nicht statische funktionieren?


----------



## Jw456 (31. Dez 2022)

Bist du dir sicher das du dem Objekt webview das recht javascript aufzuführen gegeben hast.

Ansonsten lasse dir doch den Quellcode der Webseite im Browser anzeigen dann siest du welche Techniken von der Seite benutzt werden.


----------



## wer112 (31. Dez 2022)

Jw456 hat gesagt.:


> Bist du dir sicher das du dem Objekt webview das recht javascript aufzuführen gegeben hast.


Habe ja die Setting dir ja geschickt, Da ist javaScript auf true. 



Jw456 hat gesagt.:


> Ansonsten lasse dir doch den Quellcode der Webseite im Browser anzeigen dann siest du welche Techniken von der Seite benutzt werden.


Da ist ja viel HTML Code, JavaScript, CSS


----------



## Jw456 (31. Dez 2022)

TIPP  Die Seite könnte auch JS Injektion nutzen. 

Das wirst du nicht erlaubt haben.


----------



## wer112 (31. Dez 2022)

Jw456 hat gesagt.:


> TIPP  Die Seite könnte auch JS Injektion nutzen.
> 
> Das wirst du nicht erlaubt haben.


Und wie erlaube ich das im WebView?


----------



## Jw456 (31. Dez 2022)

Bei einem Tipp könnte man Google benutzen.

Du solltest und wirst dich etwas mit Javascript beschäftigen müssen.


----------



## wer112 (31. Dez 2022)

Jw456 hat gesagt.:


> Bei einem Tipp könnte man Google benutzen.


Habe, finde nur evtl. sachen, um es zu überschreiben. Aber nicht wie ich ne Webseite lade, die das hat, ohne zu verändern.


Jw456 hat gesagt.:


> Du solltest und wirst dich etwas mit Javascript beschäftigen müssen.


Ich will ja nixs verändern, sondern nur aufrufen können.


----------



## Jw456 (31. Dez 2022)

Du solltes zumindestens im Quellcode der Webseite erkennen können welche Technologien die Seite benutzt. 
Das ist miterweile  recht umfangeich geworden. 
Du willst ja die seite analysieren und wissen was der User auf der seite treibt. 
Also wirst du einiges davon brauchen.


----------



## wer112 (31. Dez 2022)

Jw456 hat gesagt.:


> Du solltes zumindestens im Quellcode der Webseite erkennen können welche Technologien die Seite benutzt.
> Das ist miterweile  recht umfangeich geworden.
> Du willst ja die seite analysieren und wissen was der User auf der seite treibt.
> Also wirst du einiges davon brauchen.


Verstehe das grade nicht. Habe den Quelltext angesehen und da war HTML, CSS, und JS drinnen.
Aber ich will die ja per WebView aufrufen können. Sowie jeder Browser es auch kann.
Die JS Injektion habe ich recherchiert, fand nur, wie man das überschreibt, das man sein eigenen Code benutzt.
Würde Webseiten ja nicht umändern wollen extra.


----------

