私はメトロアプリに取り組んでいます。文字列(html)を受け取り、その文字列をWebビューにロードするとします。.cssをそのhtmlに関連付けるにはどうすればよいですか?
アップデート:
回答で提案されているWebViewColumnRightは、Androidメソッドです。私はメトロアプリ、c#に取り組んでいます。
私はメトロアプリに取り組んでいます。文字列(html)を受け取り、その文字列をWebビューにロードするとします。.cssをそのhtmlに関連付けるにはどうすればよいですか?
アップデート:
回答で提案されているWebViewColumnRightは、Androidメソッドです。私はメトロアプリ、c#に取り組んでいます。
JanivZが言ったように、1つの方法は、返されたhtml文字列に必要なCSSへの参照を含めて、自動的にロードできるようにすることです。
またはあなたが持っている他のオプションは、WebView.loadDataWithBaseURLを使用することができます
htmlData = "<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" />" + htmlData;
webView.loadDataWithBaseURL(baseUrl, htmlData, "text/html", "UTF-8", null);
この後、WebView はベース URL ディレクトリから CSS ファイルを見つけることができます。HTML と CSS の両方が同じベース URL から来ている場合、webView.loadDataWithBaseURL で baseURL を指定する必要はありません。
「返された文字列」には、cssファイルをロードするために必要な参照が含まれている必要があります(たとえば、以下のように)
<head>
<link rel="stylesheet" type="text/css" href="test.css" />
</head>
その中の要素が、その css ファイルで定義されたルールを参照するようにします。いいえ ?
あなたがしているなら、WEBVIEW.NavigateToString(stringHtmlContent)
それから注入してください
string styleSheetString = "<link rel='stylesheet' type='text/css' href='test.css' />"
strUpdatedHtmlContent = stringHtmlContent.Insert(stringHtmlContent.IndexOf("<head>",styleSheetString);
その後、
WEBVIEW.NavigateToString(strUpdatedHtmlContent)
これがお役に立てば幸いです。もう1つ、cssのパスと、上記の説明から得たすべてのパスに注意してください...
cssファイルが見つかるフルパスを指す外部スタイルシート。
<head>
<link rel="stylesheet" type="text/css" href="full path to css file on server">
</head>
HTMLに付属し、cssファイルへの依存を必要としない内部スタイルシート
<head>
<style>
hr {color:sienna;}
p {margin-left:20px;}
body {background-image:url("images/back40.gif");}
</style>
</head>
インラインスタイルは、内部スタイルシートが行うことを行うための厄介な方法です(外部cssファイルに依存しません)
<p style="color:sienna;margin-left:20px">This is a paragraph.</p>