gpt4 book ai didi

Xamarin Forms WebView 打开外部链接

转载 作者:行者123 更新时间:2023-12-04 11:36:17 24 4
gpt4 key购买 nike

我的应用程序中有一个 webview,当单击外部链接时(在普通浏览器中在新选项卡中打开),我无法返回我的网站。

当一个新选项卡打开时,是否可以像 Gmail 一样关闭该选项卡的菜单?

enter image description here

目标是,无论何时单击链接,用户都可以选择查看内容的选项,例如单击链接会建议打开 youtube 应用程序或谷歌浏览器。目的是出现谷歌浏​​览器选项

或者你有什么建议来处理这种情况?

最佳答案

如果我理解正确,您希望可以选择如何打开网络链接 - 在您的应用程序内,或在另一个应用程序的(浏览器)上下文中。

如果这是正确的,那么您可以使用 Xamarin.Essentials: Browser功能。

public async Task OpenBrowser(Uri uri)
{
await Browser.OpenAsync(uri, BrowserLaunchMode.SystemPreferred);
}

这里的重要属性是 BrowserLaunchMode标志,您可以了解有关 here 的更多信息

基本上,您有 2 个选项 - External & SystemPreferred .
  • 我认为第一个很清楚 - 它会在外部浏览器中打开链接。
  • 第二个选项利用了 Android 的 Chrome Custom Tabs &适用于iOS - SFSafariViewController

  • 附言您还可以自定义 PreferredToolbarColor , TitleMode , 等等。

    编辑:根据您在评论中的反馈,您希望控制如何从您的网站打开 href 链接。

    如果我理解正确,您希望第一次打开您的网站时,顶部没有导航栏,然后再打开它。不幸的是,这是不可能的。

    您可以实现相反的行为 - 第一次打开网站时,使用导航栏,如果用户单击任何链接,则在外部(在浏览器内)打开它。为此,您有 2 个选择:
  • 要从您的网站执行此操作 - 更改 a标签的目标是 _blank喜欢 this ;
  • 要从您的移动应用程序执行此操作 - 创建一个 Custom renderer对于 WebView。在 Android 项目的渲染器实现中,更改 ControlWebViewClient像这样:

  •     public class CustomWebViewClient : WebViewClient
    {
    public override bool ShouldOverrideUrlLoading(Android.Webkit.WebView view, IWebResourceRequest request)
    {
    Intent intent = new Intent(Intent.ActionView, request.Url);
    CrossCurrentActivity.Current.StartActivity(intent);
    return true;
    }
    }

    关于Xamarin Forms WebView 打开外部链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61610182/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com