ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

[JB]iOSのTwitter / Facebook共有機能を使いやすくするJailbreak Tweak、SharePatcher

      2015/02/16

iOSの共有機能には腹が立つ

SafariからTwitterにページ情報を共有しようとするときなどに使うiOS標準の共有機能。

IMG 2777

これは昔から使い物にならなくて、腹が立ってパッチを当てていたりしました。以前はWebページのタイトルを挿入してくれなかったので、挿入するように改造したのです。

[JB]iPhoneのSafariの共有機能の書式等を改善するSafariSharePatcher

iOS 8では大分マシになったが、まだ書式を整えるのに手間がかかる

iOS 8では、この共有機能を使うとWebページのタイトルを挿入してくれるようになったので大分マシですが、ぶっきらぼうにページタイトルを挿入するだけなので、共有の書式としてはイマイチです。

冒頭にコメントを書きたいので、コメントとWebページのタイトルとを区別するために、Webページのタイトルは引用符で囲いたい。コメントとWebページのタイトルの間に空白を一つ入れたい。すぐにコメントを書き始められるように、カーソルは先頭にあってほしい。

IMG 2781

そこで、それを実現するJailbreak Tweakを作ってみました。(続きは[Read More]から)

SharePatcher

作ったJailbreak TweakがSharePatcher。以前作ったSafariSharePatcherのiOS 8対応版とでも言えるものです。

Safariのみならず、システムワイドに適用されるので、名前から「Safari」が取れました。

SharePatcherは、共有されるテキストを事前にJavaScriptで加工できるようにするものです。

また、カーソルをテキストの先頭に動かす効能も持っています。


設定項目

SharePatcherをインストールすると「設定>SharePatcher」が出現します。

IMG 2782

設定項目は、PRE PROCESSのJavaScriptのみ。

IMG 2783

共有されるテキストが投稿画面にセットされる前に、ここのJavaScriptで加工され、加工結果が投稿画面にセットされるようになります。

デフォルトでは、以下のようなJavaScriptがセットされています。

txt = ' "' + txt + '"';

共有されるテキストが変数txtに代入されており、それを加工。加工したものをtxtに代入すると、それが投稿画面にセットされます。

ここでは、共有されるテキストをダブルコーテーションで囲んでいます。先頭に空白も追加しています。

if文を使って、テキストのフォーマットに応じて加工方法を変えることも当然できます。

以下の例は、共有されるテキストにURLが含まれる場合は、何も加工をしない。URLが含まれなければダブルコーテーションで囲むというものです。

if (txt.match(/http:\/\//)) {
	// nop
} else {
	txt = ' "' + txt + '"';
}

都合で入力欄が1行のテキストフィールドになっていますが、複数行のJavaScriptもペーストできます。行末のセミコロンをお忘れなく。

なぜJavaScriptが登場するなど使用者を畏怖させる作りになっているかというと、iOS 8ではこのパッチをシステムワイドに適用せざるを得ないためです。

アプリごとにどんなテキストを共有させるかはまちまちであり、それらに全部対応できないため、後から工夫できる余地を残しました。

頻用するであろうSafari、YouTube.app辺りならデフォルトのままで困りません。

活用事例

Amazonアプリ。

Amazon アプリApp
カテゴリ: Lifestyle
販売元: AMZN Mobile LLC(サイズ: 33.1 MB)
全てのバージョンの評価: (6,377 件の評価)

その共有機能は、末尾に「<半角スペース>@Amazon」というものが付きます。

IMG 2787

毎回手動で削除するのが面倒なので、SharePatcherで自動化します。

IMG 2788

1行目のように追加。

txt = txt.replace(" @Amazon", "");
txt = ' "' + txt + '"';

すると、最初から削除された状態になります。

IMG 2789

適用範囲

SharePatcherの適用範囲は、TwitterとFacebookのみです。

IMG 2784

免責

SharePatcherは無保証、無サポートです。自己責任でお使いください。

既知の不具合

動作確認環境

iOS 8.1.2 / iPhone 5s

履歴

  • 0.0.1-1 2015.02.15 初版

インストール

いつもの New野良リポジトリ をCydiaに登録後、以下のリンクをタップしてインストールしてください。

インストール後、「設定>SharePatcher」を必要に応じて設定してください。

SharePatcherをCydiaからインストールする

Amazonで買い物してく?

 - iOS, iPad, iPhone, Jailbreak