.NET 4.0 アプリケーション内でCefSharp Web ブラウザーを使用しようとしています。ローカルに保存されている html および js コンテンツからページをロードします。file://
したがって、Web ブラウザーはプロトコルを使用してページを開きます。
ページ遷移はjQuery(ajax)で行い、XMLHttpRequest cannot load file:///XXXXXXXX/Debug/res/www/shared/js/src/views/homeView.html. Cross origin requests are only supported for HTTP.
私は、Schemehandler を使用して、ProcessRequestfile://
関数をオーバーライドして、ドメイン内のページの読み込みを処理しようとしました。
class SchemeHandlerFactory : ISchemeHandlerFactory
{
public ISchemeHandler Create()
{
return new SchemeHandler();
}
}
class SchemeHandler : ISchemeHandler
{
public SchemeHandler()
{
}
public bool ProcessRequest(IRequest request, ref string mimeType, ref Stream stream)
{
var uri = new Uri(request.Url);
var segments = uri.Segments;
var file = segments[segments.Length - 1];
var bytes = File.ReadAllBytes(request.Url.Replace("file:///",""));
stream = new MemoryStream(bytes);
mimeType = "text/html";
return true;
}
}
そして、次を追加して、フォームコードで使用します。
CEF.RegisterScheme("file", new SchemeHandlerFactory());
それは何も変わりません。
CefSharp リポジトリのコミット ログを確認したところ、クロス AppDomain がサポートされるようになりましたが、どのように使用すればよいですか? https://github.com/cefsharp/CefSharp/pull/35
また、CefSharp を再コンパイル して、Web ブラウザーがローカル ファイルに対してGET操作を実行するときに返されるすべての要求にAccess-Control-Allow-Originを追加することも考えました。
私はアイデアがありません。