Wie kann ich WebView verbieten, Links im Browser in WinRT zu öffnen (target = _blank-Links)?

8

Ich habe ein WebView in meiner App und kann die HTML-Datei nicht ändern ("target = _blank" Link-Typen). Aber einige Links auf der Seite lassen meine App im Systembrowser öffnen. Wie kann ich diese Aktion ablehnen?

Danke.

    
adheus 02.07.2013, 18:17
quelle

6 Antworten

9

Führen Sie im NavigationCompleted-Ereignishandler das folgende Skript aus:

%Vor%     
Aliaksandr Hmyrak 26.11.2014, 09:25
quelle
6

Unter Windows 10 können Sie WebView.NewWindowRequested :

verwenden %Vor%     
kiewic 01.07.2016 06:39
quelle
1

Es gibt ein Navigationsstart-Ereignis. Es verfügt über eine Cancel-Eigenschaft, mit der die Navigation abgebrochen werden kann. Vielleicht wird das für Sie funktionieren?

Ссылка

    
user1985513 08.07.2013 21:06
quelle
1

Vor kurzem habe ich selbst darüber gestolpert, und ich möchte hinzufügen, dass die Nutzer2269867 Antwort eine brauchbare Lösung ist in bestimmten Situationen nicht funktionieren.

Der Systembrowser öffnet sich beispielsweise nicht nur, wenn der Benutzer auf einen Link mit dem Attribut target="_ blank" klickt, sondern auch, wenn die Funktion window.open () in JavaScript aufgerufen wird. Darüber hinaus funktioniert auch das Entfernen aller Zielattribute nicht, wenn eine Seite einen Inhalt dynamisch lädt und das DOM ändert, nachdem das Skript bereits fertig ausgeführt wurde.

Um alle oben genannten Probleme zu lösen, müssen Sie die Funktion window.open außer Kraft setzen und nicht jedes Mal nach dem Attribut "target" suchen, sondern immer dann, wenn ein Benutzer auf etwas klickt. Hier ist ein Skript, das diese Fälle abdeckt:

%Vor%

Meine js-Fähigkeiten sind nicht ideal, also ändere sie gerne. Vergessen Sie auch nicht, dass, wie kiewic erwähnt , für Windows 10 das Ereignis WebView.NewWindowRequested vorhanden ist, das dieses Problem natürlicher löst .

    
Andrey Ashikhmin 06.09.2016 15:48
quelle
0

Wenn Sie nur die Seite anzeigen möchten und keine Aktion auf dieser Seite ausführen möchten, würde ich in WebViewBrush schauen. Der WebViewBrush wird grundsätzlich die Website screenshot und die Benutzer werden nicht in der Lage sein, irgendwelche Links oder irgendetwas anderes auf dieser Seite zu verwenden, es wird in eine schreibgeschützte Seite umgewandelt. Ich glaube, das ist es, wonach du verlangst.

Weitere Informationen zu WebViewBrush finden Sie hier: Ссылка

    
Jake Bock 15.07.2013 18:01
quelle
0

Wenn Sie HTML der Seite und NavigateToString () bearbeiten können, fügen Sie & lt; base target = '_ blank' / & gt; im & lt; Kopf & gt;

    
yash 04.09.2013 03:29
quelle

Tags und Links