Urban Airship iOS 在 UIWebView 上显示消息 body

Urban Airship iOS show message body on UIWebView

有人在 iOS 做过类似的事情吗?,这是 挑战 ,在我的应用程序中,我已经配置了 UrbanAirship 方法并可以访问用户的当前消息作为 UAInboxMessage 数组并将它们显示在 table 上,其中单元格标题是消息标题,好的...现在,查看每个 object 属性,它们有一个 messageURLmessageBodyURL,当我请求那些 url 的 Urban 要求凭据时,好的,当我在我的 tableView 上触摸一行时,我将消息作为 属性 发送到 DetailViewController,在那个视图中我有一个 UIWebView,我想要的是在 UIWebView 中显示消息 Rich content,这是之前在 Urban Console 中配置的 html在我的 DetailViewController 中,所以我试图通过发送 url、webview 和消息的 UAWebViewCallData 获取它,但没有成功...

[UAWebViewCallData callDataForURL:message.messageBodyURL webView:_webView message:message];

没有工作。

我尝试将 UA 自定义委托设置到我的 webview,例如 UAWebViewDelegate 以获取信息,但再次失败,这些委托从未被调用。

和文档一样手动显示https://docs.urbanairship.com/platform/ios/#display

再次无法使用,然后一位朋友在 Android 上找到了一个 UAWebView 自定义 class,他可以从中扩展其 webview,就在写这篇文章时,显示了 body 消息

extendedWebView.loadRichPushMessage(this.message);

尝试在 iOS 上找到类似的东西,但运气不好。

请帮忙!!

访问消息中心HTML 内容需要一组唯一的凭据。它们应该通过 Urban Airship SDK 实用程序方法检索并添加到您的请求中。例如:

NSMutableURLRequest *requestObj = [NSMutableURLRequest 
requestWithURL:self.message.messageBodyURL];
requestObj.timeoutInterval = 10;

NSString *auth = [UAUtils appAuthHeaderString];
[requestObj setValue:auth forHTTPHeaderField:@"Authorization"];
[self.webView loadRequest:requestObj];

您还可以在此处查看 Urban Airship 提供的默认消息中心中的 webview 是如何配置和加载的:https://github.com/urbanairship/ios-library/blob/master/AirshipKit/AirshipKit/ios/UADefaultMessageCenterMessageViewController.m

swift4:

    let request = NSMutableURLRequest(url: url)
    request.timeoutInterval = 10;

    let auth = UAUtils.appAuthHeaderString()
    request.setValue(auth, forHTTPHeaderField: "Authorization")
    ....