【android】Webview内のJavascriptやjQueryからアプリ内の関数を呼び出すお話

  • このエントリーをはてなブックマークに追加

スマホアプリを作る上でWebViewを抜きには作ることができません。

ゲームやツール系の場合はアプリで実装する必要がありますが、ウェブサービスとの連動を行う場合は、WebViewで作った方が便利だったりします。(androidやiosでの出し分けも不要だったりするので)

ただ、アプリ→WebViewやWebView→アプリといったデータの受け渡しが必要になると思います。

例)WebViewのボタンを押すとアプリ内課金の画面が表示される、一覧はwebViewで詳細はアプリ側で表示など

それでは簡単に実装をしていきましょう

アプリからWebViewを実装する

MainActivity.kt

最低限シンプルなWebViewです。
JavaScriptを有効にしているのと、

WebView側は以下の通りです。
BootStrap+jqueryを使ってますが、ここは何でもよいです。

画面にボタン1つ設置し、クリックすると[scheme://alert]へ移動するスクリプトを仕込んでます。

 


 

WebView上で[scheme://alert]に移動しようとするとアプリ側でURLをキャッチし、[scheme://alert]だった場合は処理を止め、それ以外は通常のリンクを行います。

引数などは?aaa=1などのパラメータをつけてから受け取ることもできるので、ここからアプリ側で処理を入れるのがよいと思います。

また、これを応用すると、外部リンクの場合はChrome Custom Tabsで開き、内部リンクの場合はWebViewで開くなどができるので便利です。
(昔のようにintentを使ってブラウザを呼び出そうとするとリジェクトされる場合があります)

今回はAndroidの場合ですが、WebViewはiOS版と共通で使うことがほとんどなので、同じ挙動でiOSでも同じ事ができるようにする必要がありますね。

 

執筆者:松本[ エンジニア ]

関連記事

プログラミング

【PHP】PHPでExcelファイルを操作するお話 その2

目次1 前回は・・・2 考え方3 保存したフォーマットにデータを入れる4 ExcelからPDFへ変換する4.1 mpdfで変換する4.2 TCPDFで変換する4.2.1 IPAexフォントのインストール5 結局何がいいの? 前回は・・・ 前回はPHPでExcelファイルを操作する方法をまとめました。 基本的にはCSV出力や一括登録の代替案としてまとめましたが、PhpSpreadsheetを使うことでExcelで作成した書類のフォーマットにPHPでデータを入力してPDFで出力す […]

プログラミング

【PHP】PHPでExcelファイルを操作するお話 その1

目次1 こういうことってないですか?2 インストール方法3 PHPでライブラリの呼び出し方4 Excelファイルのエクスポート方法4.1 ちなみに・・・5 Excelファイルのインポート方法6 これを組み合わせると??? こういうことってないですか? webでの管理システムを設計するときに「CSVでインポートやエクスポート機能を付けてよ」って言われる事があります。 インポートに関しては一括登録や一括削除や更新など割とリスクが大きいのですが、エクスポートはあったりします。 CS […]

スマホアプリ

【Android】スプラッシュスクリーンを設定するお話

スマホアプリを作る上で欠かせない・・・訳ではないですが、アプリの構成に必要なのはスプラッシュスクリーン(以下スプラッシュ画面)ですよね 目次1 そもそもスプラッシュ画面とは?2 Androidアプリで実装する場合(今まで)3 SplashScreen API登場3.1 スプラッシュ画面用のActivityを用意する3.2 themes.xmlにテーマを記述する そもそもスプラッシュ画面とは? スマホアプリにかかわらず、ほとんどのアプリやプログラムを起動した際に一瞬表示される画 […]

株式会社8bit (エイトビット)

東京都目黒区でWebサイト制作、Webシステム開発などを行っております。
コーポレートサイトやWebサービスの企画・提案を得意としており、自社での経験を元にアイデアをカタチにするお手伝いをさせていただいております。

Web制作に関するご相談はお気軽にどうぞ

弊社に制作をご依頼いただく際の費用感をご確認いただける、
見積りシミュレーションをご用意いたしました。