このブログの以前の記事「コードのピクセル化」では、テキストから画像を生成する方法を紹介し、エンコード/デコード ツールも提供しました。その記事で私は「これもまた楽しみ以外の目的がない」と書きましたが、まさにその通りです。しかし、今日は、写真を使用してデータを送信するという別のアプリケーション シナリオを思いつきましたので、それを共有したいと思います。
Android システムでは、多くのアプリが Web ページにいくつかのクライアント機能を実装するために、クライアント上でローカル HTTP サービスを開きます。 Webページ上で本サービスの異なるインターフェースを呼び出すことで、通常では不可能な機能を簡単に実現できます。この記事では、このアプローチ自体については説明せず、問題についてのみ説明します。Web 製品が HTTPS にアップグレードするにつれて、JSONP または XHR2 を介した HTTP サービスとの対話が機能しなくなります。
以下の段落は、私の記事「HTTPS の有効化に関するいくつかの経験の共有 (1)」から直接抜粋したものです:
最新のブラウザー (Chrome、Firefox、Safari、Microsoft Edge)、基本的には準拠しています。 W3C の混合コンテンツ仕様では、混合コンテンツを次の 2 つのカテゴリに分類しています: オプションでブロック可能とブロック可能:
オプションでブロック可能な混合コンテンツには、危険性が低く、改ざんされても深刻な問題を引き起こさないものが含まれます。仲介業者によって。最近のブラウザはデフォルトでそのようなリソースをロードし、警告メッセージをコンソールに出力します。このようなリソースには次のものが含まれます。ロードされたビデオまたはオーディオ;
したがって、Web ページがアプリに一方的に通知し、戻り値を取得する必要がない場合は、ローカル インターフェイスのリクエストを直接変更して、画像を使用して送信することができます。
値を返す必要がある場合は、以前のソリューションを使用してテキストを画像にコンパイルし、読み込みに成功した後、画像をデコードしてコンテンツを復元できます。ここで注意すべき点が 1 つあります。画像応答の CORS ヘッダーを構成した後でのみ、そのピクセル データを Canvas で読み取ることができます。
原理はほぼ同じです。例を示します (リーダーを使用している学生は、元のテキストをクリックして表示してください):
この例では、HTTP インターフェイス データをサーバーから取得する方法を示します。 Canvas による HTTPS Web サイトが使用されます。実際、戻り値が列挙できる場合は、Canvas も省略できます。サーバーは幅 1px、高さ npx の画像を直接生成し、JS は戻り値を知るために画像の高さを取得できます。
この記事へのリンク: https://imququ.com/post/use-image-to-transfer-data.html、コメントしてください。
--EOF--
2016-03-10 00:38:48 に公開され、「キャンバス、HTTPS」タグが追加されました。
このサイトは「Alibaba Cloud ECS」上に展開されています。 Alibaba Cloud サービスも購入したい場合は、私の 10% オフの推奨コード
NY1Z0E
を使用できます (新規ユーザーのみ)。