Window.open() 在 WKWebView 中不起作用

2024-03-31

我试图在 safari 浏览器中打开一个 URL,同时从应用程序的 iOS WKWebView 单击它,但是当我从 javascript 调用 window.open() 时没有任何效果。

它没有达到 WKWebView 中的决定策略,

[Foundation.Export("webViewecidePolicyForNavigationActionecisionHandler:")]
public void DecidePolicy(WKWebView webView, WKNavigationAction navigationAction, Action<WKNavigationActionPolicy> decisionHandler)

我尝试重写 WKUIDelegate 方法,但它不起作用。 :(

有人可以帮我吗?


注意 - 我没有 xamarin 经验,但我知道“window.open()”js 如何在 WKWebView 中使用本机代码工作,所以我希望这个答案将帮助您连接缺失的点。

首先,在配置 Web 视图的位置设置 UIDelegate..(在您的情况下在 viewDidLoad 中)

webView.uiDelegate = self

其次,实现UIDelegate的这个协议方法。这个想法是创建一个动态的 Web 视图和一个动态的视图控制器,并呈现/推送它,并将该 Web 视图实例返回到 WebKit,以便它可以与父 Web 视图建立链接并加载 url(window.webview 的第一个参数)。公开征集)。

func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
        let childWebView = WKWebView(frame: .zero, configuration: configuration)   // Must use the configuration provided by this method
        let webViewController = ViewController() // create an instance of a new view controller that you want to push or present with a web view
        webViewController.webView = childWebView // provide this new child web view to view controller for layout purpose 
        navigationController?.pushViewController(webViewController, animated: true)
        return childWebView
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Window.open() 在 WKWebView 中不起作用 的相关文章

  • 如何在 Xamarin.Forms 中设置不透明度动画

    我想知道如何对屏幕上可见元素的不透明度进行动画处理 例如 对于 Entry 我得到了这个 this Animate d gt Debug WriteLine anim d Username Opacity AnimationTime d A
  • 在没有 UI 导航器控件的 uiviewcontroller 之间切换

    我想以编程方式在 2 个 UIViewController 类之间切换 而不需要任何额外的 UI 控制 例如向应用程序添加 UI 的 UITabBarController 我的 main 使用 addSubView 加载第一个视图控制器 v
  • Chrome 应用程序 localStorage 不持久并且 chrome.storage 不工作

    我有一个 chrome Kiosk 应用程序 我需要在机器打开和关闭之间保存数据 几个字节作为字符串 但无论我尝试什么 本地存储似乎在重新启动时都会被擦除 当我转到 chrome inspect apps 检查 Chrome 应用程序时 控
  • iOS/WKWebView 上 SVG 的随机故障渲染

    在我们的 iOS 应用程序中显示 SVG 图标时 我们遇到了奇怪的间歇性 非常偶然 渲染故障 基于WKWebView 当它确实发生时 它似乎可能与 CSS 相关 因为如果我在调试页面时在 Safari 中更改一些随机 甚至完全不相关 的 C
  • 如何在 Xamarin Forms 的 Microchart 中添加 2 行

    我现在正在使用 Xamarin Forms 并尝试使用 Microchart 我想在一个折线图中显示 2 条线 以便我可以比较它们 但现在我不能在一张图表中同时放入2条线 有什么解决办法吗 非常感谢 你可以使用 hack 独立创建两个图表并
  • 从 Webview 获取源代码(VB for Metro)

    我正在制作一个 Windows Phone 的应用程序 我可以从名为 DebWeb 的网络视图获取特定班级的 ClassRoom DebWeb 加载所有教室所在的网站 但我想让我的应用程序搜索只是我的班级 之前我制作了一个具有几乎相同目标的
  • Xamarin.UITest:如何检索列表中的所有元素

    我有一个包含 500 个元素的列表 当我使用app Query在页面上 Xamarin UITest 只给了我 6 个元素 因为 UI 中只有 6 个元素可见 如何从 UITest 内的列表中检索所有 500 个元素 如上所述 预期行为ap
  • Android 退出全屏后嵌入式 IFRAME 视频继续在后台播放

    我已经搜索了很多解决这个问题的方法 但显然我找不到 嗯 顾名思义 我有一个简单的 Android 应用程序 它有一个 Webview public class MainActivity extends Activity protected
  • Android < 4.3 WebView https 错误:回退到 SSLv3,因为主机不容忍 TLS

    我的应用程序包含一个WebView加载 httpsurl 我注意到 Android 版本 gt 4 3一切正常 但在较低版本上我收到此错误 external chromium net http http stream factory imp
  • Android:在以下情况下如何在html中引用css文件

    hi在我的应用程序中 我需要在 webview 中显示一个 html 页面 并且该 html 页面应该引用 css 文件的 sdcard 位置 使用 link href 标签 我在 sdcard gt mibook 中放置了 2 个文件 即
  • 如何使用 MvvmCross 创建 MasterDetailPage?

    我正在尝试使用 MvvmCross 开发 Xamarin Forms 应用程序 并且我想使用汉堡菜单 MasterDetailPage 但我不知道该怎么做 我尝试了不同的方法 搜索教程和示例 但没有成功 谁能帮我 正如你在这里看到的Mvvm
  • WKWebView CALayer 到图像导出空白图像

    我试图截取网页的屏幕截图 但图像始终为空白 白色 我正在使用此代码进行转换CALayer to Data 取自这里 https stackoverflow com a 41387514 4859791 extension CALayer G
  • 在 WKWebView 中加载本地文件在设备中不起作用

    我无法在 wkwebview 中加载本地 epub 文件 从文档目录 它可以在模拟器中运行 但不能在设备中运行 我了解到这是 iOS 8 的一个错误here http www openradar me 18039024 iOS 8 已经解决
  • 在 WKWebView 中加载 Microsoft Office 文档

    我已经使用 UIWebView 在我的应用程序中显示 Microsoft Office 文档 Word PowerPoint Excel 一段时间了 但 Apple 最近已弃用 UIWebView 类 我正在尝试切换到 WKWebView
  • android webview溢出无法禁用

    我在 android webview 中有一个本地页面 页面的html and body两者都有width 100 height 100 overflow hidden 以及 result popup wrap有以下CSS result p
  • Xamarin 中 QR 扫描后的处理对话框

    我在Xamarin应用程序中使用QR码扫描仪 当它扫描QR码时 它会执行一些操作 大约需要一分钟 而在执行操作时 我想在屏幕上显示一个加载对话框 但是 它没有显示在屏幕上 并且在应用程序的其他地方 它运行得很好 Code var expec
  • 使用 swift 在 WKWebView 上显示活动指示器

    我正在处理以下代码 并尝试在页面加载时在视图中显示活动指示器 我尝试实施WKNavigationDelegate方法 但我失败了 因为没有任何显示 对于如何解决这个问题 有任何的建议吗 我没有设置 SupportWebView 视图dele
  • 绑定到 ListView 项目从视图模型中点击的属性

    我正在尝试使用 itemtapped 属性将事件绑定到菜单页面上的 ListView 目前我在我的应用程序中使用 MVVM Xamarin 表单实验室 框架 我想要完成的是当用户点击菜单项时应用程序导航到正确的视图 这是xaml代码
  • 使用 MVVM 绑定 Xamarin.Forms 中的属性

    我在使用 Xamarin Forms 和 MVVM 制作游戏时遇到问题 游戏中有一艘由用户控制的潜艇 并且有水雷掉落 因此用户必须避开这些水雷 这些地雷是在运行时使用 2 个计时器生成的 因此我用 XAML 中的 CollectionVie
  • 如何在 Xamarin Forms 中对列表进行分组?

    我需要将下面的列表以 xamarin 形式与公司名称进行分组并需要在 ListView 中显示 我研究过 ObservableCollection 是可能的 但我不知道该怎么做 任何人都可以帮助实现这一目标吗 List public cla

随机推荐