如何修改 Xamarin.Forms 中的 WebView 以在设备上的浏览器中打开链接?

2023-12-01

默认链接(<href..>) Xamarin.Forms WebView 在 WebView 内打开。特别是在 iOS 中,没有原生后退按钮,从互联网打开 URL 时行为会很不方便。

如何让 Xamarin.Forms 让设备上的浏览器打开链接,以便它至少在 Android、iOS 和 UWP 中运行?


没有内置属性或任何东西可以让您执行此操作。

但是,那WebView确实有一个Navigating事件处理程序。您应该能够挂钩,将用户重定向到您想要的任何内容,然后取消原始事件。像这样的事情:

public void WebView_Navigating(object sender, WebNavigatingEventArgs args)
{
    if (args.Url.StartsWith("file://"))
    {
        return;
    }

    Device.OpenUri(new Uri(args.Url));

    args.Cancel = true;
}

要从代码中连接它:

var webView = new WebView();
webView.Navigating += WebView_Navigating;

来自 XAML:

<WebView Navigating="WebView_Navigating" />

更多信息:

https://learn.microsoft.com/en-us/dotnet/api/xamarin.forms.webview.navigating?view=xamarin-forms

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修改 Xamarin.Forms 中的 WebView 以在设备上的浏览器中打开链接? 的相关文章

随机推荐

  • onHover 事件未在 Chart.js 中触发

    我想当鼠标在图表上移动时更改光标 例如这把小提琴 这适用于 Chart jsv2 4但不适用于v2 6 v2 7任何想法 var ctx document getElementById canvas1 getContext 2d var m
  • 脚本可以在本地主机上运行,​​但不能在服务器上运行

    我遇到这个问题 代码在本地主机上运行 但当我将其上传到服务器时却不起作用 我想实现这个 宝丽莱照片吧画廊 这是我的网站的链接 十二生肖 2013 Note 您需要进入图库选项卡才能查看它 EDIT 请使用 Google Chrome 浏览器
  • 寻找正则表达式来匹配 gmail plus 地址

    我目前使用这个 gmail com 我正在捕获一组加号之前和之后的文本 它适用于大多数情况 例如 email protected 但如果我尝试匹配说就会跌倒 email protected 重复的 号似乎把它搞砸了 任何帮助将非常感激 Th
  • 将 R Parallel 与其他 R 包一起使用

    我正在使用 R 中的 LQMM 包进行非常耗时的分析 我将模型设置为从星期四开始运行 现在是星期一 并且仍在运行 我对模型本身充满信心 作为标准 MLM 进行测试 并且对我的 LQMM 代码充满信心 已经使用相同的数据集运行了其他几个非常相
  • 检测用户存在

    我想做的是检测用户是否正在积极使用运行 Windows 2000 或更高版本 的计算机 最好 我想在不使用屏幕保护程序的情况下执行此操作 背景 我们有一个客户服务部门 位于寻线组中 可以 可用 或 不可用 如果他们 有空 呼叫将被路由到他们
  • 多个命令在 xcode 11.4 反应本机中产生错误我的副本包资源为空

    以下是xcode中的错误 我还尝试过从工作区设置构建旧版本 但未能成功 多个命令生成 Users saifubaid Library Developer Xcode DerivedData antispam bjwrxskogxnnophf
  • 如何在Linux内核中递归读取目录内容?

    我想实现一个树遍历函数 打印给定目录的所有内容 在内核中 我知道如何在用户空间中执行此操作 但我的要求是在内核空间中执行此操作 为此 我正在研究 vfs readdir 函数 并且对其用法有点困惑 假设我将从其他内核模块调用我的遍历函数 这
  • 如何设置 AlertDialog 的主题

    如何将警报主题设置为标准 Android 主题之一 我想使用 Holo Dark 因为弹出窗口默认为 Holo Light 我的代码 AlertDialog Builder confirm new AlertDialog Builder t
  • 如何使用 NSCache

    有人可以举例说明如何使用NSCache缓存字符串 或者有人有一个很好的解释的链接吗 我好像找不到啊 您使用它的方式与使用它的方式相同NSMutableDictionary 不同的是 当NSCache检测到内存压力过大 即缓存了太多值 它将释
  • PyCharm 中注释的折叠

    很长一段时间我一直在寻找一种在 PyCharm 中折叠注释的方法 基本上我一直在寻找一种方法来实现相同的目标 对于代码块的注释 很容易实现这一点 region Description all your comments go here en
  • 如何使用 javascript 更改 @keyframes 值?

    我想要做的是改变 0 和 100 的最高值 keyframes取决于 javascript 中的 x 等于什么 我之前已经使用 javascript 更改了 css 但我被困在这个上了 Code var x Math floor Math
  • 如何使用 Amazon Cognito 进行未经身份验证的访问?

    我创建了联合身份 Enabled 未经身份验证的访问与复选框 创建了与此身份关联的角色并赋予它管理员访问权限 所以它应该拥有所有权限 然后我添加此代码以将文件上传到 AWS S3 它与访问 密钥一起使用 我不想公开给 UI 但它不适用于 C
  • JHipster 应用程序中延迟加载组件的 i18n

    My App是基于JHipster因此语言服务是通过以下方式提供的智语言服务 in the ng jhipster库使用了一个Jhi配置服务配置ngx translate无需我在我的中导入和配置 TranslateModuleapp mod
  • MSI 卸载期间文件到底是如何删除的?

    我想知道在卸载过程中已安装的文件 组件到底发生了什么 对于安装和升级过程 MSDN 上有可靠的文档 请参阅文件版本控制规则 and 默认文件版本控制 例如 无论如何 我在 MSDN 或 WiX 的文档中找不到卸载删除逻辑的文档 所以 我的问
  • 批量递归文件夹并填充数组

    我希望通过文件夹 子文件夹 等进行递归 使用文件夹路径动态填充数组 示例 我有一个名为 A 的文件夹 其中有 2 个子文件夹 B 和 C C 有一个子文件夹 D 所以数组将是 Folder 01 A Folder 02 A B Folder
  • 以编程方式禁用 UITextView 的水平滚动

    我正在寻找一种以编程方式禁用 UITextView 水平滚动的方法 通过 Interface Builder 很容易 但由于我以编程方式设计视图 所以我找不到方法来做到这一点 我用谷歌搜索它作为好吧 但我得到的最多的是 如何以编程方式停止水
  • 检测运营商连接类型(3G / EDGE / GPRS)

    如何获取运营商网络的连接类型 我可以使用以下命令了解连接是 WIFI 还是 WWANReachability class 我能够获取网络标志 可达性标志状态 WR t localWiFiStatusForFlags 我可以使用以下方式获取
  • Bower 安装错误:无法连接并退出代码 #128

    我在凉亭安装方面遇到问题 Bower ECMDERR 无法执行 git ls remote tags heads HTTPS LINK 到 Bower Angular Mocks git 退出代码 128 我遵循了中提到的建议Git Bow
  • 可以使用 关闭跨度吗?

    span class drop span HTML span 可以这样关闭吗 这是否有效取决于您doctype 基本上无论您使用的是 XHTML 还是 HTML 使用 XHTML 时 所有主要浏览器都将支持自关闭标签 如您提供的示例 采取以
  • 如何修改 Xamarin.Forms 中的 WebView 以在设备上的浏览器中打开链接?

    默认链接