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

新手求助:如何在Xamarin.Forms启动时打开WebView加载指定URL?

解决Xamarin.Forms启动时用WebView加载指定URL的问题

嘿,作为Xamarin新手,这个需求其实很容易实现!咱们直接把你现有的MainPage.xaml里的Label替换成WebView,再做一些必要配置就搞定了,一步步来:

第一步:修改MainPage.xaml代码

把你当前的XAML代码替换成下面的内容,核心就是用WebView控件替代原来的Label,并指定要加载的URL:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:App3"
             x:Class="App3.MainPage">
    <StackLayout>
        <!-- 用WebView替换Label,加载指定URL -->
        <WebView 
            Source="http://localhost:8080/"
            HorizontalOptions="FillAndExpand"
            VerticalOptions="FillAndExpand" />
    </StackLayout>
</ContentPage>

这里几个关键细节:

  • Source属性直接设置为你要加载的目标URL http://localhost:8080/
  • HorizontalOptions和VerticalOptions设为FillAndExpand,让WebView占满整个屏幕空间,避免只显示一小块区域

第二步:配置Android平台的网络权限(必做)

如果你在Android上运行应用,必须确保应用有网络访问权限,并且允许明文HTTP请求(因为localhost用的是HTTP而非HTTPS):

  1. 打开Android项目的Properties/AndroidManifest.xml文件
  2. 添加网络权限声明:
    <uses-permission android:name="android.permission.INTERNET" />
    
  3. 在<application>标签里添加android:usesCleartextTraffic="true",允许明文HTTP请求(Android 9及以上系统默认禁止):
    <application android:label="App3" android:usesCleartextTraffic="true">
        <!-- 其他原有内容保持不变 -->
    </application>
    

第三步:iOS平台的可选配置(若遇到加载失败)

iOS 9及以上默认启用ATS(App Transport Security),会阻止明文HTTP请求,但localhost属于系统例外,一般不需要额外配置。如果还是出现加载失败的情况,可以在iOS项目的Info.plist里添加以下配置:

  1. 右键Info.plist选择“Open As” -> “Source Code”
  2. 添加ATS例外配置:
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>localhost</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
                <true/>
            </dict>
        </dict>
    </dict>
    

验证效果

现在运行你的应用,启动后就会直接通过WebView加载http://localhost:8080/了!只要你的本地服务已经正常运行,就能看到对应的网页内容啦。

内容的提问来源于stack exchange,提问作者Asim Dogar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:10:27