のらぬこの日常を描く

ノージャンルのお役立ち情報やアニメとゲームの話、ソフトウェア開発に関する話などを中心としたブログです。

android端末でブラウザの自動切り替えや、basic認証付きの動画を動画アプリで再生できるようにする

2014/08/26 追記

この記事の内容もだいぶ古くなってきました。

最近リリースした最新バージョンに対応した解説動画をアップしましたので宜しければこちらも合わせてご参照ください。

D

前説的な

appSelector.webというアプリを公開しました。

このアプリを使うと、androidの「デフォルトでの起動」の仕組みや、いくつかのブラウザアプリを使い分けたいときの操作性を、android 標準の機能をそのまま使うよりも、もう少し使いやすくしてくれます。

例えば、

普段はchrome使ってるんだけど、うまく表示できないから別のブラウザで試してみたい。

気分でちょっとブラウザを変えたいんだけど、デフォルトの起動設定を毎回消すのって結構面倒くさいんだよねー。

Web上の資料を開こうとしたら表示が崩れてしまった。別のアプリで開こうと思ったけど、デフォルトのk(ry

Web上の動画を再生しようとしたら、未対応の動画と言われてしまった。別のアp(ry

この短縮URL、どこにつながってるのか確認してから開きたいんだけど・・・・

パスワードが掛かったサイトの動画がうまく再生できないんだけど・・・・

このアプリは、こういったちょっとしたことを簡単な操作で色々解決してくれるアプリです。

アプリができること

appSelector.webは、大きく2つの機能を持っています。

  1. Webサイトのアドレスやコンテンツの種類によって、使用するアプリを自由に切り替える事が出来る機能。
    • 起動するアプリは、自動で選択することも、毎回アプリ選択ダイアログを表示して選ぶこともできます。
  2. パスワード認証(BASIC認証)で保護されたサイト内の動画/音楽などを開いた時、プレーヤーアプリなどに自動的にログイン情報を渡す機能。
    • 例えば、NASのデータをBASIC認証をかけてWeb公開したとします。
    • 保存された動画を、スマホタブレットを使って、Web経由で再生しようとしても、再生に失敗することがあります。
    • Webブラウザで入力した認証情報は、動画プレーヤーに引き渡されないため、動画プレーヤー側で認証エラーとなっているためです。
    • しかし、appSelector.webを使えば、動画再生アプリにBASIC認証のユーザ名、パスワードを自動で引き渡すことが可能になります
      • appSelector.webの設定画面で、事前に、サイトのURL、ユーザ名、パスワードの組み合わせを登録しておく必要があります

詳しい使い方

Webサイトのアドレスやコンテンツの種類によって、使用するアプリを自由に切り替えるには?

サイト毎にWebページを開くブラウザを切り替える

URLをタップした時など、android標準のアプリ選択ダイアログが出てきたら、appSelector.webのアイコンを選んで「常時」を選んでください(次回以降は、このダイアログは表示されません)。

appSelector.webのアプリ選択画面が表示されるので、使いたいブラウザと、通常起動するアプリの設定をして、起動するブラウザをタップしてください。

選択したブラウザでWebページが表示されます。

なお、通常使用するアプリに設定した場合、次回以降はこのダイアログは表示されません。今回指定したアプリが自動的に起動します。

f:id:mikenekoDX:20140803122257p:image:w240 f:id:mikenekoDX:20140803122258p:image:w240 f:id:mikenekoDX:20140803125451p:image:w240

動画ファイルや音楽ファイルなどを開く場合、ファイルの種類、サイト毎に開くアプリを切り替える

動画ファイルやオーディオファイル等の場合も大体一緒です。

全てのサイトで同じアプリを使うのか、サイトごとにアプリを使い分けるのかも選択することができます。

「サイト1:動画アプリ1」、「サイト2:動画アプリ2」、「その他のサイト:動画アプリ3」のような設定も可能です。

f:id:mikenekoDX:20140803125448p:image:w240

「共有」機能から使う。

ブラウザによっては、今開いているURL、リンク先のURLを「共有」機能を使って、他のアプリに渡すことができるようになっています。

appSelector.webでは、共有機能を使って、Webサイトや動画ファイルなどを開くことも可能です。

共有方法のダイアログから、「アプリを指定して開く」を選んでください。

f:id:mikenekoDX:20140804010840p:image:w360

ルールの有効化・無効化

登録したルールを一時的に無効化、個別削除したい場合も簡単です。

android 標準機能のように、アプリに紐付いている全てのルールをまとめて削除するしかない、ということはありません。

アプリを起動して、標準のアプリ設定画面を開けば、簡単に設定の変更が行えます。

f:id:mikenekoDX:20140803131711p:image:w240

それすらめんどくさい場合

URLを現在関連付けられているアプリで開いたら、一旦そのアプリを終了し、もう一度同じURLを開いてください。

すると、アプリ選択ダイアログが再度開くので、使いたいアプリを選びなおしてください。

f:id:mikenekoDX:20140803132337p:image:w240

パスワード認証(BASIC認証)で保護されたサイト内の動画/音楽などを開いた時、プレーヤーアプリなどに自動的にログイン情報を渡すには?

appSelector.webの「パスワード認証情報の登録と設定」画面で、サイトの場所+ログインユーザ名+パスワードを設定してください。

設定完了後は、appSelectorweb経由でそのサイトにアクセスした際、ここで設定した情報が自動的に起動したアプリに引き継がれます。

f:id:mikenekoDX:20140803202240p:image:w240

余談

もともとやりたかった部分は、「ブラウザのURL共有や、リンクを他のアプリで開くを選択した時、BASIC認証の情報を開いた先のアプリに受け渡したい。」の部分です。

なんでそんなことをしたかったかって言うと、自宅のLAN環境内に保存されたアニメを外からスマホタブレット等で見たかったから、です。

うちでは、録画したアニメは .mp4化して、ルータのWeb公開機能を利用して、BASIC認証付きで外からも見えるようにしています。

会社のPCなのであれば、普通に自宅にhttp接続して動画を見ることができます。

でも、スマホから見ようとすると動画プレーヤが動いてくれません。

Webブラウザでファイル一覧を見ることはできるのですが、動画を再生しようとして動画ファイルを選択すると、プレーヤーは立ち上がるものの、エラーが表示され再生に失敗します。

原因は、ご存じの方もいるかもしれませんが、通常のアプリは、URLを引き渡して他のアプリを起動するとき、セッション情報や認証情報は引き渡してくれません。

セッション情報についてはどーしよーもないと思いますが、BASIC認証情報については、https?://<username>:<password>@hostname/pathの形式で渡せば、受け側のアプリが対応していれば動作してくれるはずなのです。

なので、こんなこと(↓)をしてくれるアプリがあったらいいなー、と思ったのがきっかけです。

f:id:mikenekoDX:20140803113853p:image

最終的には、色々作りこんでいった結果、BASIC認証の受け渡しはおまけ的な扱いになっていますが。。。

最後に

使ってみて、感想とかコメントとかありましたら、ツイッターとかブログとかでつぶやいてみてください。

それを見つけたら作者(私)が少し喜ぶかもしれません。


また、このブログを読んで、もしも興味を持った方がいましたら、google play の「appSelector.web」からダウンロードして頂いてお試しいただけると嬉しいです。