uwp
WebView नेविगेशन
खोज…
टिप्पणियों
सभी उदाहरण जो दूरस्थ URL से डेटा प्राप्त करते हैं, उनके पास पैकेज .appxififest में "इंटरनेट (क्लाइंट)" क्षमता होनी चाहिए। केवल स्थानीय डेटा में हेरफेर करने वाले उदाहरणों के लिए यह आवश्यक नहीं है।
उड़ी में नेविगेट करें
यह कोड बस कुछ Uri के लिए WebView नेविगेट करता है:
this.webView.Navigate(new Uri("http://stackoverflow.com/"));
या
this.webView.Source = new Uri("http://stackoverflow.com/");
HttpRequestMessage के साथ नेविगेट करें
कस्टम उपयोगकर्ता एजेंट सेट करें और उरी में नेविगेट करें:
var userAgent = "my custom user agent";
var uri = new Uri("http://useragentstring.com/");
var requestMessage = new HttpRequestMessage(HttpMethod.Get, uri);
requestMessage.Headers.Add("User-Agent", userAgent);
this.webView.NavigateWithHttpRequestMessage(requestMessage);
स्ट्रिंग पर नेविगेट करें
WebView में निर्दिष्ट HTML स्ट्रिंग दिखाएं:
var htmlString =
@"<!DOCTYPE html>
<html>
<head><title>HTML document</title></head>
<body>
<p>This is simple HTML content.</p>
</body>
</html>";
this.webView.NavigateToString(htmlString);
ऐप पैकेज से HTML फ़ाइल खोलें
आप आसानी से अपने ऐप पैकेज से एक फ़ाइल खोल सकते हैं, लेकिन उरी योजना को "ms-appx-web" के बजाय "ms-appx" होना चाहिए:
var uri = new Uri("ms-appx-web:///Assets/Html/html-sample.html");
this.webView.Navigate(uri);
एप्लिकेशन को स्थानीय फ़ोल्डर या अस्थायी फ़ोल्डर से HTML फ़ाइल खोलें
स्थानीय फ़ोल्डर या अस्थायी फ़ोल्डर से फ़ाइल खोलने के लिए, लक्ष्य फ़ाइल उन फ़ोल्डरों के रूट में स्थित नहीं होनी चाहिए । सुरक्षा कारणों से, अन्य सामग्री को WebView द्वारा उजागर होने से रोकने के लिए, प्रदर्शित करने के लिए बनाई गई फ़ाइल को सबफ़ोल्डर में स्थित होना चाहिए:
var uri = new Uri("ms-appdata:///local/html/html-sample.html");
this.webView.Navigate(uri);
NavigateToLocalStreamUri
ऐसे मामले में जब NavigateToString कुछ सामग्री को संभाल नहीं सकता है, तो NavigateToLocalStreamUri विधि का उपयोग करें। यह HTML रिज़ॉल्यूशन के भीतर हर स्थानीय-संदर्भित यूआरआई को विशेष रिज़ॉल्वर वर्ग को कॉल करने के लिए मजबूर करेगा, जो मक्खी पर सही सामग्री प्रदान कर सकता है।
एसेट्स / एचटीएमएल / html-sample.html फ़ाइल:
<!DOCTYPE html>
<html>
<head>
<title>HTML document</title>
</head>
<body>
<p>This is simple HTML content.</p>
<img src="cat.jpg"/>
</body>
</html>
कोड:
protected override void OnNavigatedTo(NavigationEventArgs args)
{
// The Uri resolver takes is in the form of "ms-local-stream://appname_KEY/folder/file"
// For simplicity, there is method BuildLocalStreamUri which returns correct Uri.
var uri = this.webView.BuildLocalStreamUri("SomeTag", "/html-sample.html");
var resolver = new StreamUriResolver();
this.webView.NavigateToLocalStreamUri(uri, resolver);
base.OnNavigatedTo(args);
}
public sealed class StreamUriResolver : IUriToStreamResolver
{
public IAsyncOperation<IInputStream> UriToStreamAsync(Uri uri)
{
if (uri == null)
{
throw new ArgumentNullException(nameof(uri));
}
var path = uri.AbsolutePath;
return GetContent(path).AsAsyncOperation();
}
private async Task<IInputStream> GetContent(string uriPath)
{
Uri localUri;
if (Path.GetExtension(uriPath).Equals(".html"))
{
localUri = new Uri("ms-appx:///Assets/Html" + uriPath);
}
else
{
localUri = new Uri("ms-appdata:///local/content" + uriPath);
}
var file = await StorageFile.GetFileFromApplicationUriAsync(localUri);
var stream = await file.OpenAsync(FileAccessMode.Read);
return stream.GetInputStreamAt(0);
}
}
यह कोड ऐप पैकेज से HTML पेज लेगा और इसमें स्थानीय फ़ोल्डर से सामग्री एम्बेड करेगा। बशर्ते आपके पास / स्थानीय / सामग्री फ़ोल्डर में छवि "cat.jpg" है, यह बिल्ली की छवि के साथ HTML पृष्ठ दिखाएगा।