• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 按钮不工作取决于变量的长度

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:51:12 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个按钮,当按下它时,它会带你到一个由一些变量组成的 url。除“texto”外,所有变量都是一个词。

如果“texto”是一个词,一切正常。当“texto”超过一个词(甚至是一个词和一个空格)时,问题就来了,并且按钮不会带你到 url。

我的代码如下:

@IBAction func pay(_ sender: Any) {

        NSLog("%@", texto);

        let urlString:String = "https://webpage/video.php?user=\(user)&pass=\(pass)&texto=\(texto)&esp=\(espec)&l_origen=\(l_origen)&l_destino=\(l_destino)"

        if let url = URL(string:urlString){
            let svc = SFSafariViewController(url: url)
            self.present(svc, animated: true, completion: nil)
        }
    } 



Best Answer-推荐答案


正如其他人所说,网址中不允许使用空格。您必须“百分比转义”任何包含空格的字段。但是,您不希望对整个 URL 进行百分比转义,因为这会转义作为 URL 语法一部分的斜杠、冒号和 & 号等字符。

您的代码应如下所示:

@IBAction func pay(_ sender: Any) {

    let escapedTextTo = texto.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
    print("texto = ", escapedTextTo);

    let urlString:String = "https://webpage/video.php?user=\(user)&pass=\(pass)&texto=\(escapedTextTo)&esp=\(espec)&l_origen=\(l_origen)&l_destino=\(l_destino)"

    if let url = URL(string:urlString){
        let svc = SFSafariViewController(url: url)
        self.present(svc, animated: true, completion: nil)
    }
} 


请注意,最好使用 URLComponents 创建您的 URL。它会为您处理 URL 各个部分的不同转义规则。

关于ios - 按钮不工作取决于变量的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49255349/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap