【问题标题】:Send and Open data in iMessage app在 iMessage 应用程序中发送和打开数据
【发布时间】:2017-01-18 03:47:02
【问题描述】:

我正在为 iOS 10 创建一个 iMessage 应用程序,我想在其中发送一些带有布局的数据。当用户点击已发送的布局时,它将打开 iMessage 应用程序并访问也已发送的数据。数据是一个字符串。

我应该使用 MSMessage URL 来发送数据吗? 一旦用户在 iMessage 中点击 MSMessage 布局,我如何再次收到 URL?

谢谢

【问题讨论】:

    标签: swift ios10 xcode8 imessage msmessage


    【解决方案1】:

    是的,您将使用MSMessage.URL 发送和检索数据。

    当用户点击 MSMessage 时, -(void)didBecomeActiveWithConversation:(MSConversation *)conversation 将被调用。您可以像这样通过传递的 MSConversation 对象访问选定的消息 URL NSURL *url = conversation.selectedMessage.URL

    【讨论】:

      【解决方案2】:

      在 swift 3 中,您可以从 Messageviewcontroller 的这种过度方法中获取 URL,savedConversation 是 MSConversation 的对象

          override func willBecomeActive(with conversation: MSConversation){
              if(savedConversation?.selectedMessage?.url != nil)
      
                 let url = savedConversation?.selectedMessage?.url
                 UIApplication.shared.open(url, options: [:], completionHandler: nil)
      
          }
      

      【讨论】:

        【解决方案3】:

        MSMessageurl 属性是您可以存储自定义数据的地方。

        您也可以使用iMessageDataKit 库。它使设置和获取数据变得非常容易,例如:

        let message: MSMessage = MSMessage()
        
        message.md.set(value: 7, forKey: "user_id")
        message.md.set(value: "john", forKey: "username")
        message.md.set(values: ["joy", "smile"], forKey: "tags")
        
        print(message.md.integer(forKey: "user_id")!)
        print(message.md.string(forKey: "username")!)
        print(message.md.values(forKey: "tags")!)
        

        (免责声明:我是iMessageDataKit的作者)

        【讨论】:

        • 这很好。我将把你的库集成到我们的 iMessage 扩展中。让我们更快地开发我们的原型。您是否打算为更多 iOS 版本更新库(例如,如果发生某些更改)?
        猜你喜欢
        • 2017-03-30
        • 2017-01-16
        • 2017-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-16
        相关资源
        最近更新 更多