2016-03-21 5 views
0

Ich versuche, eine Webview-Quelle mit einer lokalen Datei zu setzen.Chrome App: Sandbox Ressourcenadresse nicht erreichbar

Manifest:

"webview": { 
    "partitions": [{ 
     "name": "static", 
     "accessible_resources": [ 
     "sandbox/sandbox.html", 
     "sandbox/sandbox.js", 
     "sandbox/sandbox.css", 
     ] 
    }] 
    }, 

Set Webview der Quelle

var webviewSrc = chrome.runtime.getURL('sandbox/sandbox.html'); 
    //console.log prints chrome-extension://MY_CHROME_APP_ID/sandbox/sandbox.html 
    webviewEl = <webview id="webview" ref="Webview" src={webviewSrc} partition="static"></webview> 

Fehler:

<webview>: The load has aborted with error -109: ERR_ADDRESS_UNREACHABLE. 

Warum ist es hap Pening, und wie behebe ich dieses Problem?

Diese Einstellung funktioniert:

/foreground/main.html

<html> 
    <head> 
    <link rel="stylesheet" type="text/css" href="./bundle/app.css"> 
    <link rel="stylesheet" type="text/css" href="./main.css"> 
    </head> 
    <body> 
    <div id="app"></div> 

    <div id="webview-container"> 
     <webview id="youtube-webview" src="sandbox/sandbox.html" partition="static"></webview> 
    </div> 

    <script src="./bundle/app.js"></script> 
    </body> 
</html> 

/sandbox/sandbox.html

Hello 

Diese Einstellung Adresse‘Rückkehr unerreichbar 'Fehler:

/foreground/main.html

<html> 
    <head> 
    <link rel="stylesheet" type="text/css" href="./bundle/app.css"> 
    <link rel="stylesheet" type="text/css" href="./main.css"> 
    </head> 
    <body> 
    <div id="app"></div> 
    <script src="./bundle/app.js"></script> <-- initialize webview inside here 
    </body> 
</html> 

/sandbox/sandbox.html

Hello 

/foreground/bundle/app.js

var webviewSrc = chrome.runtime.getURL('sandbox/sandbox.html'); 
// or var webviewSrc = 'sandbox/sandbox.html'; 
webviewEl = _react2.default.createElement("webview", { id: "webview", ref: "Webview", src: webviewSrc, partition: "static" }); 
// ADDRESS_UNREACHABLE 

Antwort

0

<webview> ist für externe Inhalt.

Verwenden Sie embed your own sandboxed pages .

Außerdem ist es anscheinend wichtig, relative Pfade zu verwenden - getURL gibt ein anderes URI-Schema als erwartet zurück.

+0

Ich möchte Webview anstelle eines iframe verwenden, weil ich seine Anfrage Header ändern muss. Webview, das eine lokale Datei lieferte, funktionierte völlig in Ordnung, bis ich die Verzeichnisse ein wenig umstrukturierte. Könntest du bitte mein Update überprüfen? –

+0

Beachten Sie, dass Sie zuvor eine relative URL und anschließend eine vollwertige URL verwendet haben. Möglicherweise ist das das Problem (vollständige URL von 'getURL' ist nicht das, was erwartet wird). Beachten Sie jedoch, dass die Dokumentation '