質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

3回答

4857閲覧

Android Studio初心者です。webviewにおけるintentの使用について質問です。 この度、Androidアプリの作成を学習したいと思い、手始めにwebviewでとあるHPを開くアプ

MildGear

総合スコア8

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2016/11/14 01:49

編集2016/11/14 03:35

Android Studio初心者です。webviewにおけるintentの使用について質問です。

この度、Androidアプリの作成を学習したいと思い、手始めにwebviewでとあるHPを開くアプリを作成しています。
そのHP自体を開くことは出来たのですが、HP内にある問い合わせボタンを押すと通常のクロームなどのブラウザアプリではメールアプリが立ち上がるのに、
作成しているアプリ上ではメールアプリを立ち上げることが出来ず、http接続になってしまいページエラーとなってしまいます。
エラー内容は、
ウェブページへのアクセス不可
ウェブページ(mailto:info@xxxx.jp)は次の理由で読み込めませんでした。
net:ERR_UNKNOWN_URL_SCHEME
です。
ネットで検索をかけるなどして調べた上で、MainActivity.java内にて下記の記述をしております。

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WebView myWebView = (WebView) findViewById(R.id.webView); myWebView.setWebChromeClient(new WebChromeClient()); myWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebResourceRequest request) { Intent intent = new Intent(); String url = null; if(url.startsWith("mailto:")) intent = new Intent(Intent.ACTION_SENDTO, Uri.parse(url)); intent.setType("message/rfc822"); startActivity(intent); return true; } }); myWebView.getSettings().setJavaScriptEnabled(true); myWebView.loadUrl("URL"); }

ちなみにですが、件名や本文は問い合わせ内容によって変わるためこちら側で内容を固定することは出来ません。
どなたか何か足りない部分・修正する部分がお分かりになる方、ご回答宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

リファレンスを見ると、shouldOverrideUrlLoading()のシグネチャが間違っているように思います。

@Override public boolean shouldOverrideUrlLoading(WebResourceRequest request) { Intent intent = new Intent(); String url = null; if(url.startsWith("mailto:")) intent = new Intent(Intent.ACTION_SENDTO, Uri.parse(url)); intent.setType("message/rfc822"); startActivity(intent); return true; }

また、if文の前でurlにnullを代入しているので、これではurl.startsWith("mailto:")がtrueになることはありません。

投稿2016/11/22 06:02

KaedeKazane

総合スコア408

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

以下のサイトにWebViewを使う時の注意事項がまとめられています。mailtoの処理も書いてあるので参考にしてみてください。
webviewを使ってWebアプリを作成する際に必要な設定まとめ

投稿2016/11/14 09:13

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MildGear

2016/11/22 03:32

ご回答ありがとうございます。 そちらの外部リンクでのmailtoの処理も検証してみたのですが、メールアプリも開かず、状況は変わらずでした。 javaのみならずxmlに対して何か記述なども必要になってくるのでしょうか。
guest

0

エラーメッセージの通り、「mailto:」ではなく「mailt:」になってたりしませんか?

投稿2016/11/14 03:27

Y.H.

総合スコア7914

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MildGear

2016/11/14 03:36

ご回答ありがとうございます。 質問文内のご指摘いただいたエラー内容の部分(mailt:)をmailto:に修正致しました。 失礼致しました。
KaedeKazane

2016/11/22 03:44

回答の指摘は『webViewで表示しているHTMLのリンクが「mailt:」になっているのでは?』 と言うものかと思いますが、表示しているHTMLもエラーメッセージも「mailto:」になっていて、「mailt:」は質問の際の入力ミス、ということですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問