4

アプリから iPhone メールアプリに HTML を転送したい。私はすでに HTML テキストを持っています - <span style='color:red'>Test</span> とは言いませんが、これを UIPasteBoard に配置できます - しかし、それをメールに貼り付けると、HTML ソースが得られます。

同じ文字列を HTMLView に配置すると、そこを選択してコピーすると、メールに赤いテキストとして貼り付けられます。

文字列を UIPasteBoard に配置して、メール アプリケーションに赤いテキストとして貼り付けるにはどうすればよいですか? 「フォーマットタイプ」を検索してきました-クリップボードに要素(UIWebViewからコピー)があると、UIPasteBoardが「Aplle Webアーカイブペーストボードタイプ」を返すことがわかりました。ただし、コンテンツを UIPasteBoard に追加するときにこれをタイプとして設定すると、メール アプリには何も貼り付けられません。

マンフレッド

4

5 に答える 5

9

そうではありません。ペーストボードに何でも貼り付けることができます。ドキュメントを読んでください。

HTML をメール アプリにコピーする方法を示すチュートリアルをまとめました。 http://mcmurrym.wordpress.com/2010/08/13/pasting-simplehtml-into-the-mail-app-ios/

于 2010-07-22T15:09:28.383 に答える
1

コメントで付けたのと同じリンクで、この段落が一番上にあります。

Uniform Type Identifier (UTI) は、表現型 (ペーストボード型と呼ばれることもあります) によく使用されます。たとえば、kUTTypeJPEG (public.jpeg の定数) を JPEG データの表現型として使用できます。ただし、アプリケーションは表現型に必要な任意の文字列を自由に使用できます。ただし、アプリケーション固有のデータ タイプの場合は、リバース DNS 表記を使用してタイプの一意性を確保することをお勧めします (com.myCompany.myApp.myType など)。

そのすぐ下に、ここへのリンクがあります。http://developer.apple.com/iphone/library/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_intro/understand_utis_intro.html#//apple_ref/doc/uid/TP40001319

これはUTIを説明しています。

最後に、このリンクはいくつかのタイプを提供しますhttp://developer.apple.com/iphone/library/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html#//apple_ref/doc/uid/TP40009259-SW1

もちろん、独自のタイプを作成できるため、そのリストはすべてのタイプではありません。

html をメール アプリに正常に貼り付けました。始めるのに良い場所を提供します...

ペーストボードにデータ型を表示するアプリを作成します。デバイスで safari に移動し、Web ページをコピーします。アプリを実行すると、ペーストボードの種類が「Apple Web Archive ペーストボードの種類」になっていることがわかります。これは実際にはペーストボード タイプ (カスタム タイプ) であることに注意してください。Web アーカイブを作成して Safari モバイルのコピー アンド ペースト機能を自分で複製し、それをテキストとしてメール アプリに貼り付けようとすると、Web アーカイブ ファイルが raw xml として表示されます。タイプを「Apple Web アーカイブ ペーストボード タイプ」として定義すると、メール アプリは実際にペーストを html としてフォーマットします。

Web アーカイブがどのようなものか知りたい場合。デスクトップ サファリでは、Web ページをアーカイブとして保存し、テキスト リーダーでファイルを確認するだけです (テキスト編集はそれを解析しようとするため、別のプログラムを使用してアーカイブ xml を確認することもできます)。

あなたが私に送ったリンクでカスタム型を実行できることがわかるので、すべてのドキュメントを読んでください。

于 2010-08-02T13:47:04.800 に答える
0

それは絶対に可能です。UIPasteboard通常、UTI によってインデックス付けされた複数の値が含まれます。

public.htmlこれは、プライマリ タイプとして取得する方法の実例です。

-(NSString * _Nullable) getHtmlFromPB {
    static NSArray * prefs = @[@"public.html",@"public.utf8-plain-text",@"public.plain-text"];
    if (!UIPasteboard.generalPasteboard.hasStrings) return nil;
    for (NSString * theone in prefs) {
        if ([[UIPasteboard generalPasteboard].pasteboardTypes indexOfObject:theone] == NSNotFound) continue;
        return [UIPasteboard.generalPasteboard.items.firstObject objectForKey:theone];
    }
    return nil;
}

説明が必要な場合:prefs配列には、ペーストボード コンテンツの優先 UTI が希望の順序で含まれています。したがって、それらのいずれかを使用するか、何も使用しません。

于 2021-06-11T17:08:09.190 に答える
-17

いいえ、できません。UIPasterBoard は、文字列、画像、URL、および色のみを受け入れます。

于 2010-03-15T23:42:00.257 に答える