2017-01-12 3 views
0

Ich möchte die Produktspezifikation von einem externen Dienst anzeigen. Dazu muss ich die folgende JS-Zeichenfolge an Webview übergeben.Dynamischen Inhalt in der Webansicht anzeigen UWP

<!DOCTYPE html> 
<html> 
<body> 

    <div id="flix-minisite"></div> 
<div id="flix-inpage"></div> 
<script 
type="text/javascript" 
src="http://media.flixfacts.com/js/loader.js" 
data-flix-distributor="12612" 
data-flix-language="id" 
data-flix-brand="Samsung" 
data-flix-mpn="UA55JU6600KPXD" 
data-flix-ean="" 
data-flix-sku="" 
data-flix-button="flix-minisite" 
data-flix-inpage="flix-inpage" 
data-flix-button-image="" 
data-flix-fallback-language="e2" 
data-flix-price="" 
async> 
</script> 
</body>   </html> 

Ich habe die unten Methode hinzugefügt:

webview.NavigateToString("htmlString"); 

Hinzufügen dieser zeigt nur den Text aus dem Dienst, aber die Bilder und Videos werden nicht angezeigt zu werden.

Ergebnis Erwartet: http://media.flixcar.com/delivery/minisite/show/12612/id/957752

Was ich mir falsch?

+0

ich eine einfache HTML-Seite mit Ihrem Code erstellt haben, und testen Sie es in Chrome. Beim Laden einiger TXT-Dateien treten mehrere Fehler auf. Sie sollten eine funktionierende Webseite erstellen, bevor Sie versuchen, sie in das WebView zu integrieren. –

+0

wenn ich diesen HTML-Code in Online-Tools (http://www.onlinehtmleditor.net/) alles zeigt, einschließlich der Bilder – Prince

Antwort

0

Für mich ist es nicht funktioniert, weil das folgende Skript in nicht korrekt auf Ihre HTML-Seite hinzugefügt:

<script type="text/javascript" src="//media.flixcar.com/delivery/static/inpage/9/js/lazy.js"></script> 

Es wird dynamisch vom Skript http://media.flixcar.com/delivery/static/inpage/9/js/append.js hinzugefügt.

Die URL sollte http://media.flixcar.com/delivery/static/inpage/9/js/lazy.js sein, damit sie korrekt vom Webview geladen wird (das ist nichts anderes als Edge-Browser).

Ich denke auch, dass Sie jedes Bild Attribute aktualisieren müssen. Derzeit werden sie auch ohne Protokoll hinzugefügt, die nicht von allen Browsern unterstützt werden (bei mir funktioniert das nur mit Chrome).

<div class="flix-feature-image"> 
    <img src="//media.flixcar.com/delivery/static/mobile/standard/img/loading_icon.gif" 
     data-srcset="//media.flixcar.com/f360cdn/Samsung-1601328499-id-feature-uhd-ju6600-ua65ju6600kpxd-52938564 2x, //media.flixcar.com/f360cdn/Samsung-1601328499-id-feature-uhd-ju6600-ua65ju6600kpxd-52938564 770w"> 
</div> 

Hinzufügen Protokoll wird das Problem beheben:

<div class="flix-feature-image"> 
    <img src="http://media.flixcar.com/delivery/static/mobile/standard/img/loading_icon.gif" 
     data-srcset="http://media.flixcar.com/f360cdn/Samsung-1601328499-id-feature-uhd-ju6600-ua65ju6600kpxd-52938564 2x, http://media.flixcar.com/f360cdn/Samsung-1601328499-id-feature-uhd-ju6600-ua65ju6600kpxd-52938564 770w"> 
</div> 
+0

Danke @Arnaud. Ist es für uns möglich, dies zu beheben, wie das Einfügen eines Protokolls in alle Anfragen oder ist es besser, sie zu bitten, es zu beheben? – Prince

+0

Ich denke, Sie können Ihre Seite ändern, indem Sie die lazy.js direkt in Ihren HTML-Inhalt importieren. Sie müssen auch jquery.js basierend auf meinen Tests einschließen. Dann können Sie eine Funktion erstellen, die alle Bilder durchläuft und das Präfix http: // allen "src" - und "data-srcset" -Attributen hinzufügt. Versuchen Sie anschließend, das Ereignis "lazyshow" (in lazy.js deklariert) auf "img" -Elementen aufzurufen. Mit all diesen Schritten könnte es funktionieren :) –

Verwandte Themen