UIWebview 使用 javascript 在移动 safari 中打开 URL

2024-01-03

所以我正在使用 Phaser 构建一个 HTML5 游戏,并且有一个按钮可以调用 javascript 中的 URL,如下所示:

window.open("http://google.com", "_blank"); 

这在桌面上在新窗口中打开时效果很好,我也可以通过 webview 在 Android 设备上的默认浏览器中打开它。但在 iOS 上,在 swift 中使用 UIWebView 我使用以下代码

func webView(webView: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool {
        if navigationType == UIWebViewNavigationType.LinkClicked {
            UIApplication.sharedApplication().openURL(request.URL)
            return false
        }
        return true
    }

它会触发,所以是的,我设置了委托,我什至在这里有一个断点,这样我就可以查看属性,并且request.URL无处可寻。这些属性都没有可用于检测和调用 mobile safari 的 URL...

我在网上找到的所有内容都只是说它只能与标准链接标签一起使用,例如<a href="http://google.com">link text</a>我也尝试过document.location.href = "http://google.com";没有运气。顺便说一句,我做了测试<a href="http://google.com">link text</a>这个功能有效,它可以在 safari 中打开它。当通过 Javascript 调用 URL 时它不起作用。

Also, webViewDidStartLoad/webViewDidFinishLoad当调用 URL 但在 webView 对象提供的任何属性中都找不到 URL 时,两者都会触发断点...

有什么想法可以让委托函数与调用 URL 的 javascript 配合良好吗?或者有什么解决办法吗?它只是在 webview 中加载链接...我只需要它在移动 safari 中打开这些链接。


弄清楚了!只需在 html 页面上的某个位置创建一个包含游戏内容的空 a 标签,例如:

<a id="theLink" target="_blank" href="http://google.com"></a>

然后使用 Javascript“单击”它,如下所示:

document.getElementById('theLink').click();

与上面的 swift 代码结合使用对我来说很有效,游戏会在 safari 中打开链接。

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

UIWebview 使用 javascript 在移动 safari 中打开 URL 的相关文章

随机推荐

  • iframe 和 Javascript 完成后 WebBrowser 控制文档完成

    我需要捕获生成的 HTML 图像 我正在使用 Alex Filipovici 的出色解决方案 将 HTML 字符串转换为图像 https stackoverflow com questions 17832304 convert html s
  • 仅当 PropertyName 未在 Json.Net 中显式设置时才使用驼峰命名法?

    我的网站使用 Json Net 我希望序列化程序默认以驼峰命名法序列化属性名称 我不希望它更改我手动分配的属性名称 我有以下代码 public class TestClass public string NormalProperty get
  • 访问 django admin 内联模型中的请求对象

    我有以下模型 表单 管理层次结构 我想要实现的基本上是将当前登录的用户添加到 AttachmentInlines 的字段中 所以我想我需要在几个方法中传递的请求对象 在下面实现 但是 在这种情况下 这些方法都不会被调用 显然是因为我正在使用
  • 两个物体之间的夹持

    I need grip between two objects actually small cube is a player having rigid body and big cube is an object that helps s
  • Android Studio WebView中的文件上传

    我想允许我的 WebView Android 应用程序使用上传按钮 由于我不是 Android 开发人员 因此我需要您的帮助来为 Android WebView 启用图像上传器 这是我的 MainActivity 文件 package co
  • 使用 XSLT 将 XML 转换为 CSV

    我有以下 XML 文档
  • 如何让 ¤ 按字面显示,而不是显示为 HTML 实体

    我正在使用 php 查看其中包含 URL 的 XML 文件 URL 看起来像这样 当我回显 URL 时 curren 显示为 又名 164 A4 或货币符号 并且链接不起作用 即使没有结束分号 也会发生这种情况 使 curren 按字面显示
  • 从 2 列 ComboBox VBA 检索两个值

    我有一个用户表单 excel VBA 其中有一个 2 列组合框 当用户从组合框中选择某个值时 我想获取他选择的值以及与第一个值关联的值 即第二列值 我该怎么做呢 简单地ComboBox1 Value返回第一列的值 ComboBox1 Val
  • 如何在子文件夹/包中使用 Go 1.16 嵌入功能?

    Go 1 16 已发布 我想使用新的嵌入功能 如果所有内容都在主包中 我就可以让它工作 但尚不清楚如何处理从子文件夹 包访问资源 尝试通过 embed FS 支持来做到这一点 例如我有一个 main go 并且在处理程序包 文件夹中还有一个
  • 获取属性的值

    这是我的 XML
  • 如何在Java运行时创建动态类

    在运行时更改现有 Java 文件的某些属性后 是否可以从现有 Java 文件创建新的 Java 文件 假设我有一个java文件 public class Student private int rollNo private String n
  • 选择 SQL Server 数据库大小

    我怎样才能查询我的sql服务器只获取数据库的大小 我用过这个 use MY DB exec sp spaceused 我懂了 database name database size unallocated space My DB 17899
  • 以数组形式返回 sql 查询

    我正在使用 jqueryui 及其自动完成插件 它使用 json 来提取项目 我想修改它 以便从我的数据库中提取项目 物品应该是这样的 items array Great em Bittern em gt Botaurus stellari
  • 检查文本是否为 HTML

    我正在使用 Meteor 我正在尝试检查文本是否为 html 但通常的方法不起作用 这是我的代码 post function var postId Session get postId var post Posts findOne id p
  • RGB 到 HSI 以及 HSI 到 RGB 转换

    我正试图掩饰RGB to HSI并恢复它 该任务需要从头开始 In RGB to HSI转换 饱和度和强度输出都很好 但我似乎没有明白Hue的表述有什么问题 示例输出 Red 255 Green 255 Blue 255 Hue 21474
  • Nginx LetsEncrypt 错误“/etc/letsencrypt/options-ssl-nginx.conf”没有这样的文件或目录

    我正在尝试使用 LetsEncrypt 和 Nginx 添加 https 我已经添加了 certbot 并且它运行成功 然后 当尝试运行 Nginx 服务器时 我收到此错误 docker entrypoint sh docker entry
  • EF4 CTP5 的存储库模式

    我正在尝试使用 ef4 ctp5 实现存储库模式 我想出了一些东西 但我不是 ef 方面的专家 所以我想知道我所做的是否是好事 这是我的数据库上下文 public class Db DbContext public DbSet
  • 用户输入和命令行参数[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何拥有可以接受用户输入的 Python 脚本 如果从命令行运行 如何让它读取参数 要读取用户输入 您可以尝试the cmd modu
  • 使用给定的部分大小列表将 Scala 列表拆分为多个部分。[分区]

    我有两个清单 val list1 List Int List 5 2 6 val list2 List Any List a b c d e f g h i j k 这样list1 sum gt list2 size 我想要一个由 list
  • UIWebview 使用 javascript 在移动 safari 中打开 URL

    所以我正在使用 Phaser 构建一个 HTML5 游戏 并且有一个按钮可以调用 javascript 中的 URL 如下所示 window open http google com blank 这在桌面上在新窗口中打开时效果很好 我也可以