Entersquare Inc. ホームページ作成の株式会社エンタースクウェア

【WordPress + Contact Form7 + Android】AndroidのLINEのブラウザ(Webview)で「添付ファイル」ボタンが動かない(input type= “file”)

【WordPress + Contact Form7 + Android】AndroidのLINEのブラウザ(Webview)で「添付ファイル」ボタンが動かない(input type= “file”)

LINEでURLを送った時に、
そのURLをタップすると、LINEのアプリ内でWebが閲覧できますよね。

このLINEアプリ内でWebを開いたときに、 WordPressとContact Form7を使って作ったメールフォームの、

「ファイル添付ボタン」がクリックしても反応しない、動かないという現象がありました。

調べるのに時間を使ってしまったので、メモしておきます。

※LINEアプリ内でWebを閲覧する事を、以下「LINEアプリ内ブラウザを使う」と表現します。

原因:accept属性の設定が拡張子の場合、動作しない。MIMEで設定すること。

LINEアプリ内ブラウザではaccept属性の指定はMIMEで設定をしてあげる事で、動作するようになりました。

他メールフォームを調べた所、
LINEアプリ内ブラウザを使ってもinput type=”file”自体は正しく動作しておりましたので、
Contact Form7で吐き出したhtmlと見比べてみました。

Contact Form7では「拡張子」で設定しています。

accept=".jpg, .png"

しかし、LINEアプリ内ブラウザで動作したinput type=”file”は「MIME」で設定していました。

accept="image/jpeg, image/png, image/gif"

プラグインContact Form7の改修内容

今回、代替プラグインを探すかなど、いろいろ検討したのですが、
急ぎという事もあり直接プラグインに手を入れています。

プラグインはご存知の通りアップデートが必要なので、この方法は推奨しません。

改修ファイル:plugins/contact-form-7/modules/file.php

バージョン:5.1.3

/* コメントアウト
$atts['accept'] = wpcf7_acceptable_filetypes(
$tag->get_option( 'filetypes' ), 'attr' );
*/

//これを追加
$atts['accept'] = 'image/jpeg,image/png,image/gif';


また、コードを読んで頂いた通り、管理画面でaccept属性を設定できる機能を壊しています。柔軟性が低下中です。

ですので、あくまでも何がどうなって(今回は)解決したかという事だけを覚えておけたらよいかと思います。

Solutions

ソリューション

ホームページ作成

Webサイト制作・運用保守

コーポレートサイト/サービスサイト/オウンドメディアサイト/LP/EC

ウェブマーケティングの技術を使ってホームページの作成や保守を承っております。

Webのお悩み

Webのご相談・サポート

運用のお困りごと/集客のお困りごと/運用担当が居なくなったなど

Webに関するお困りごとや、お悩みなどのご相談、サポートを承っております。

その他、アクセス解析、広告運用、SNSサポートなどWebに関する事全般承っております。

詳しく見る