使用 DTCoreText 嵌入推文

Posted

技术标签:

【中文标题】使用 DTCoreText 嵌入推文【英文标题】:Embed tweet with DTCoreText 【发布时间】:2015-05-25 21:50:09 【问题描述】:

我正在展示一个使用 DTCoreText 的 html 代码。到目前为止一切正常,但现在我在此 HTML 代码中收到嵌入的推文,但它们无法正常工作。 正如 Twitter 文档中所说,推文嵌入了块引用标签,这是我收到的一个示例:

<blockquote class="twitter-tweet" lang="fr">
<p>
Here is the official <a href="https://twitter.com/hashtag/SPECTRE?src=hash">#SPECTRE</a> teaser poster <a href="http://t.co/3cn3iM6tf1">pic.twitter.com/3cn3iM6tf1</a></div>&mdash; James Bond (@007) <a href="https://twitter.com/007/status/577877246809141248">17 Mars 2015</a>
</blockquote>

仅显示文本。 我以这种方式在 DTCoreText 中注册了一个新类:

[DTTextAttachment registerClass:[MyBlockquoteClass class] forTagName:@"blockquote"];

MyBlockQuoteClass 有这个构造函数:

- (id)initWithElement:(DTHTMLElement *)element options:(NSDictionary *)options

    self = [super initWithElement:element options:options];

    if (self)
    
        NSLog(@"THIS IS MY ELEMENT %@", element);
        NSLog(@"THESE ARE MY OPTIONS %@", options);
    

    return self;

读取blockquote标签时调用构造函数,但options只有4个与字体颜色和大小相关的键,元素有很多属性但对我没用,几乎所有东西都是nil,没有孩子,只有get class="twitter-tweet" 和 lang="fr",但无法获取内容,因此我无法将块引用嵌入到 UIWebView 中。

我做错了什么?也许使用 DTCoreText 有更好的方法?

亲切的问候!

【问题讨论】:

【参考方案1】:

为此,需要在 DTCoreText 中实现以下内容:

    一种自定义标签处理程序从常规输出中隐藏标签内容的方法 让自定义 MyBlockquoteClass 发送连接的原始字符串内容

然后您可以在委托方法中为您自己的 Web 视图提供这些内容,从而为文本附件设置自定义视图。

    您可能还希望将它与现代属性一起使用(以便它与 UIKit 兼容,例如 UITextView)

【讨论】:

以上是关于使用 DTCoreText 嵌入推文的主要内容,如果未能解决你的问题,请参考以下文章

更改嵌入推文的最大宽度

如何在 React 中更改嵌入推文的宽度?

嵌入推文得到 403(禁止)

iOS为带有嵌入推文的html字符串计算正确的WKWebview高度

如何将推特链接转换为嵌入式推文?

如何覆盖嵌入推文的样式表