3

私はさまざまな用語や語句を使って検索し、結果の多くのページを調べましたが、(驚くべきことに) この問題について他の人が対処したり、質問したりしているのを見たことがありません. だからここに行きます...

最終的な目標: ユーザーが Windows ストア アプリ内のコンテンツ ベースのページ (テキストと画像の両方を含む場合があります) を表示して、そのコンテンツを他のユーザーと共有できるようにします。

説明
私は、かなりの量のコンテンツを取得し、Windows 8/WinRT/Windows ストア (ここでは一貫した名前が必要です) アプリケーションとしてブラウジング/ナビゲートできるようにすることに取り組んでいます。望ましい機能の 1 つは、ページを表示している誰かがそのページを他の誰かと共有できるように、共有チャームを利用することです。

理想的な動作は、アプリケーションが共有ソース コントラクトを実装することです。このコントラクトは、説明テキスト、Windows ストアからアプリを取得するためのリンク、およびアプリケーション内の共有ページへの "ディープ リンク" を含む電子メール メッセージを共有します。

考慮すべき解決策
当初は、ページの PDF 表現を生成することだけを検討していましたが、WinRT で動作する外部ライブラリはほとんどなく、外部ライセンス コードを含める必要があることも問題でした。独自の PDF 生成コードを記述することは範囲外です。

OpenXML を使用して Word ドキュメントまたは PowerPoint スライドを生成することも検討しましたが、やはり WinRT の制限に突き当たります。この場合、OpenXML SDK が WinRT アプリケーションで使用できる可能性はほとんどありません。

もう 1 つの考えは、すべてのページを .pdf ファイルとして事前に生成し、それらをリソースとして保存し、共有チャームが呼び出されたときに、現在のページに関連付けられた .pdf ファイルを共有することでした。ここでの問題は、アプリケーションに少なくとも 150 のコンテンツ ページがあり、コンテンツの分割方法によっては最大 600 を超えることです。これにより、深刻な肥大化が生じる可能性があります。

現在地 この
ようにして、URI を共有するようになりました。ただし、私が知る限り、「ディープ リンク」機能は、アプリケーションに関連付けられたセカンダリ タイルでの使用のみを目的としています。私が検討したもう 1 つの方法は、"my-special-app:" のようなプロトコルを OS に登録し、アプリケーションを起動させることでしたが、これには WinRT サンドボックスの外部にある HKCR レジストリ アクセスが必要でした。

問題がある場合は、XAML/C# ではなく HTML/JS アプリケーションに傾倒しています。変換されたコンテンツはすべて HTML であり、WinRT の WebView コントロールはかなり制限されているためです。ただし、この決定はまだ最終的なものではありません。

結論
それで、これは可能ですか? もしそうなら、それはどのように行われますか? それに関するドキュメントはどこにありますか?

ありがとう、
デイブ・パーカー

4

0 に答える 0