代码之家  ›  专栏  ›  技术社区  ›  ChrisID58

城市飞艇iOS在UIWebView上显示消息正文

  •  3
  • ChrisID58  · 技术社区  · 7 年前

    挑战 消息URL ,当我请求那些URL Urban请求凭据时,好的,当我触摸tableView上的一行时,我将消息作为属性发送到DetailViewController,在该视图中,我有一个UIWebView,我想要的是在我的DetailViewController的UIWebView中显示消息丰富的内容,这是之前在Urban控制台中配置的html,所以我试图通过UAWebViewCallData发送url、webview和消息来获取它,但运气不好。。。

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

    没有工作。

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

    https://docs.urbanairship.com/platform/ios/#display

    又一次不工作,然后一个朋友发现 安卓 有一个UAWebView自定义类,他可以在此基础上扩展其webview,只需编写这个,消息体就会显示出来

    extendedWebView.loadRichPushMessage(this.message);
    

    试着在iOS上找到类似的东西,但没有运气。

    请帮忙!!

    1 回复  |  直到 7 年前
        1
  •  6
  •   Community Fabien Hure    5 年前

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

    NSMutableURLRequest *requestObj = [NSMutableURLRequest 
    requestWithURL:self.message.messageBodyURL];
    requestObj.timeoutInterval = 10;
    
    NSString *auth = [UAUtils appAuthHeaderString];
    [requestObj setValue:auth forHTTPHeaderField:@"Authorization"];
    [self.webView loadRequest:requestObj];
    

    https://github.com/urbanairship/ios-library/blob/master/AirshipKit/AirshipKit/ios/UADefaultMessageCenterMessageViewController.m

        let request = NSMutableURLRequest(url: url)
        request.timeoutInterval = 10;
    
        let auth = UAUtils.appAuthHeaderString()
        request.setValue(auth, forHTTPHeaderField: "Authorization")
        ....