You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin中为名为Browser的WebView构造URL的方法咨询

嘿,我来帮你搞定Xamarin里给WebView指定URL的事儿!针对你这个叫Browser的WebView组件,我分两种常见场景给你具体说实现方式:

一、如果是Xamarin.Forms的WebView

不管是用XAML还是后台代码,都很直接:

1. XAML直接设置

在你的页面XAML里,给Browser组件的Source属性赋值即可:

<WebView x:Name="Browser" Source="https://www.example.com" />

如果用MVVM模式,还可以绑定ViewModel里的URL属性:

<WebView x:Name="Browser" Source="{Binding TargetWebUrl}" />

2. 后台代码赋值

在页面的构造函数、按钮点击事件或者其他逻辑里,找到Browser实例并赋值:

// 方式1:直接用字符串URL
Browser.Source = "https://www.example.com";

// 方式2:用Uri对象更严谨(适合需要做URL校验的场景)
Browser.Source = new Uri("https://www.example.com");

// 额外:加载本地HTML内容
// 直接加载HTML字符串
Browser.Source = new HtmlWebViewSource { Html = "<html><body><h1>本地HTML内容</h1></body></html>" };

// 加载项目里的本地HTML文件(需将文件设置为EmbeddedResource)
var localHtmlSource = new HtmlWebViewSource();
localHtmlSource.BaseUrl = DependencyService.Get<IBaseUrl>().Get();
localHtmlSource.Html = File.ReadAllText(Path.Combine(localHtmlSource.BaseUrl, "your-local-page.html"));
Browser.Source = localHtmlSource;

二、如果是Xamarin原生平台(Android/iOS)

原生平台的WebView写法略有不同,分平台说:

Android平台

1. 布局文件(AXml)定义WebView

<WebView
    android:id="@+id/Browser"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

2. 在Activity里加载URL

// 找到WebView实例
var webView = FindViewById<WebView>(Resource.Id.Browser);

// 按需开启JavaScript(如果网页需要)
webView.Settings.JavaScriptEnabled = true;

// 加载远程URL
webView.LoadUrl("https://www.example.com");

// 加载本地Assets文件夹里的HTML文件(需将文件设置为AndroidAsset)
webView.LoadUrl("file:///android_asset/your-local-page.html");

注意:别忘了在AndroidManifest.xml里添加网络权限:

<uses-permission android:name="android.permission.INTERNET" />

iOS平台(推荐用WKWebView)

1. Storyboard绑定Outlet

在Storyboard里拖入WKWebView,设置Outlet名为Browser。

2. 在ViewController里加载URL

using WebKit;

public partial class YourViewController : UIViewController
{
    public YourViewController(IntPtr handle) : base(handle)
    {
    }

    public override void ViewDidLoad()
    {
        base.ViewDidLoad();

        // 加载远程URL
        var remoteUrl = new NSUrl("https://www.example.com");
        Browser.LoadRequest(new NSUrlRequest(remoteUrl));

        // 加载本地Resources文件夹里的HTML文件(需将文件设置为BundleResource)
        var localFileUrl = NSBundle.MainBundle.GetUrlForResource("your-local-page", "html");
        Browser.LoadRequest(new NSUrlRequest(localFileUrl));
    }
}

如果需要加载HTTP协议的网站,还得在Info.plist里配置ATS例外(不过更推荐用HTTPS)。

内容的提问来源于stack exchange,提问作者Ian Gallegos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:25:25