【问题标题】:Network request from share or action extension ios来自共享或操作扩展 ios 的网络请求
【发布时间】:2018-08-02 04:19:15
【问题描述】:

我搜索了这个标题,但没有找到任何合适的信息。我找到了发出网络请求的方法,将其结果发送到包含应用程序。但是,我想直接回复扩展名并在那里显示信息。我遇到了一些使用 javascript 访问网页的方法,但是没有向后端发出请求。是否可以在 iOS(iPhone,如果有的话)中提出一些请求并获得 JSON 响应或共享扩展?任何信息或指南将不胜感激!

【问题讨论】:

    标签: javascript ios json swift ios8-share-extension


    【解决方案1】:

    您可以直接从扩展程序中使用 URLSession。 https://www.raywenderlich.com/158106/urlsession-tutorial-getting-started有很好的教程

    let url = URL(...)
    let dataTask = defaultSession.dataTask(with: url) { data, response, error in
      if let error = error {
    
        // Handle error (error.localizedDescription)
        // ...
    
      } else if let data = data,
        let response = response as? HTTPURLResponse,
        response.statusCode == 200 {
    
        // Handle resonse data
        // ...
    
        DispatchQueue.main.async {
          // Close extension
          // ...
        }
      }
    }
    

    JavaScript 在这种情况下无济于事。只需向您的网址发出请求并处理响应即可。

    【讨论】:

    • 谢谢,但我在某处读到回复将返回到您的应用程序而不是扩展程序。信息有误吗?
    • URLSession 是正确的方式。它允许您在扩展程序中启动请求并将请求移交给主应用程序。在这种情况下,响应数据的处理并没有在扩展中完成(如我的回答所示)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多