Social Copy

LINEで送る
Pocket

Androidアプリを使っていて、あるアプリケーションの共有ボタンから発行されるテキストをコピーしたいと思ったことはありませんか?

おそらくほとんどの人は、メールアプリなどを一度選択して、表示された本文を選択して、コピー…としているのではないでしょうか。
ですがそんな手間はもう必要ありません。そう、Social Copyならね。(iPhoneのCMっぽく)

このアプリは、共有機能から発行されたテキストを直接コピー、さらにはURLを検出してブラウザで開くことも出来ます。

Get it on Google Play
ここからダウンロードできます。

 アプリについて

冒頭でも説明しましたが、このアプリは別のアプリケーションの共有ボタンで発行されるテキストを、コピーすることが出来るツールです。

共有ボタンというのは「共有」とか変なマークのアレです。

ふつうクリップボードにテキストをコピーしたいときは一度別のアプリを経由しなければなりませんが、このアプリを使えばワンタップでクリップボードへコピー可能です。
さらに、ワンタップで元の作業に戻ることだって出来ます。

使い方

まずはアプリをPlayストアからインストールしておきます。

そして、使う場面がきたら、共有アプリ一覧を開きます。
画像はTwitterアプリです。

img-s0101

共有したいアプリから、「Social Copy」を選択します。

img-s0102

起動すると、共有機能で送られる文字列が挿入された状態で起動します。

あとは「クリップボードへコピー」を押せばコピーされ、「閉じる」で元の作業に戻ることができます。

ブラウザで開く

このボタンを押すと、テキストに含まれているURLを自動的に検出し、ブラウザで開きます。

詳しく言うと、「***://***」となっているURLスキームを見つけ、対応したアプリケーションで開きます。
「http://***」ならブラウザで開くというわけです。

詳しくは、後述してある「」をご覧下さい。詳しい仕様と使い方があります。

各ボタンの役割

テキスト編集ダイアログ

img-s0103

表示されているままの役割を持ちます。上から、

  • テキストエリア・・・・・渡された文字が入力されます。
  • ブラウザで開く・・・・・URLをブラウザで開きます。
  • クリップボードへコピー・・・・・テキストエリアの文字列の選択状況に関わらず、テキスト全てをクリップボードへコピーします。
  • 閉じる・・・・・ダイアログを閉じます。
  • バージョン情報・・・・・バージョン情報ダイアログを表示します。

となります。

バージョン情報ダイアログ

img-s0108

主にアプリについての情報を表示しています。

  • アプリ名・・・・・アプリ名です。
  • URL抽出アルゴリズムバージョン・・・・・URLを見つけるための正規表現の状態です。このバージョンが上がっていれば検出方法が変わっています。場合によっては、アプリをバージョンアップしてもここの値が変わっていないこともあります。その場合、URLの検出精度に変わりはないことになります。
  • アプリバージョン・・・・・アプリのバージョンです。
  • 使い方・・・・・このサイトへのリンクです。
  • ブログ・・・・・開発者のブログへのリンクです。
  • 戻る・・・・・テキスト編集ダイアログに戻ります。

このようになっています。
ちなみに、バージョン情報ダイアログからメインのダイアログに戻ってもテキストについては保持されるようになっています。

使い方の例

参考程度に使い方を書いてみます。

ここにあること以外にも自由に使ってみてください。

メールアプリで自動リンクされなかったとき

ありますよね。Android標準メーラーを使っていて、なぜかリンクされない文字列。
しかもDM解除のURLに限ってリンクされてなかったり。とても鬱陶しいし面倒くさいです。

テキストかと思わせておいて実はHTML形式で、わざとリンクを外してあるのでしょうか。

そんな悩みも、簡単に解決できます。

img-s0104

まずはテキストを全て選択して、次に共有でテキストを渡します。

img-s0105

あとはボタンを押してブラウザで開いておしまい。

img-s0106

簡単ですね。

文字列にURLが含まれているとき

たとえばこの画像です。

img-s0103

共有するテキストにURLがありますね。コレを全てコピーして、ブラウザのアドレスバーに貼り付けて、いらないところをカット
としてもいいのですが、いかんせん手間がかかります。

そこでこのアプリの出番です。

img-s0107

「ブラウザで開く」ボタン一発で解決です。

もうそれ以上の言葉は必要ありません。

軽く例を挙げてみるとこういった場面で使えるのではないでしょうか。

「ブラウザで開く」について

「ブラウザで開く」機能は、URLの検出に正規表現を用いています。

独自で正規表現を考えているため、精度があいまいなところがあります。
気になったところや検出ミス等は、デベロッパーの問い合わせメールから指摘、意見や要望をいただけると今後の向上につながります。

テキスト中のURLを検出する場合、一番いいのはURLのみのテキストであることです。
ですが、テキストの中にURLが隠れている場合でも判別することが出来ます。ただし、その場合は文字列の先頭に近い1つだけを検出します。
2つ以上のURLがあった場合でも、1つ目しか検出しないということになります。

検出方法は大まかに分けて2種類あります。

「://」による検出

「文字列://文字列.文字列(/文字列)」のような形式を検出します。
“://”の前はアルファベットのみ、それ以降は全角文字があっても1つのURLとします。
http://google.com」や「https://ja.wikipedia.org/wiki/スマートフォン
は検出可能です。

「テキスト://google.com」(“://”の前がアルファベットでないのでURLスキームと判断されない)

「http://googlecom」(ドットで区切られているものがないため、URLとして判断されない)
は検出不可能ということになります。

URLとそれ以外の文字列との区別

また、URLと通常テキストは空白で区別されます。

そのため、
「http://google.com にアクセスしてください」は「http://google.com」で判断されますが、
「http://google.comで見るといいよ」はそのまま「http://google.comで見るといいよ」として判定されます。

ドット区切りによる検出

「pic.twitter.com/aaaaa」などのように、http://が付いていないURLを検出します。

上記の検出方法と違い、アルファベットのみをURLとして判別します。
(「ja.wikipedia.org/wiki/スマートフォン」は「http://ja.wikipedia.org/wiki/」となってしまいます)

ドットで区切られていればいいため、誤反応が多くなる可能性もあります。

たとえば、
「Twitterはt.coが短縮URLです」は「http://t.co」となります。
(アルファベットのみ、かつドットで区切られている範囲を検出するため。逆に言うと空白がなくてもURLのみを抽出可能)

「google.co.jp/accounts」も「http://google.co.jp/accounts」となります。
(ドット区切りの文字列のあとは、スラッシュがあればURLと見なします)

誤反応の例としては、
「App.netというSNSがある」を「http://App.net」として検出してしまいます。
これは、ドットで区切られたものを判定してしまうため、意図したURLでなくとも判別してしまうからです。
(他にも曲名など、○○ feat.××といったものも「http://feat.××」として誤反応してしまいます。)

URLとそれ以外の文字列との区別

この検出方法では、URLと通常テキストはアルファベットかそれ以外(“.”と”/”を除く)で区切られます。

2つの検出方法の扱い方

「ブラウザで開く」ボタンが押されたら、まずはURLスキームの検出(“://”を探す)を行います。
そこで見当たらなかったらドット区切りでの検出、それでもなかった場合はメッセージを表示して諦めます。

優先順位としては、
URLスキームを見つける。見つからなかったらドット区切りの文字列を探す。
という形になります。

URLは先頭に近い1つ目しか検出できませんので、もしテキストが

「ここにアクセスしてね。→http://google.com おまけ:google.co.jpだと日本バージョンだよ。」

だった場合、もしアクセスしたいURLが「google.co.jp」だったとしても優先順位的に「google.com」が検出されてしまいます。

この2つの検出方法の特性を理解して使えば、よりいっそう使いやすくなるかもしれません。

お問い合わせ

お問い合わせは、このページのコメント欄かGoogle Playストアのデベロッパーのメールアドレスにお願いします。

意見や要望などどうぞ。

LINEで送る
Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA