LIFF(LINE)ブラウザでwindow.prompt()が期待する動作をしない

2021年10月16日(土) 14時22分50秒 | 96 view |

運用しているLIFFアプリでwindow.prompt()を使っているのだけれど、ある時から、promptのデフォルトメッセージそのままだと処理が進行しないというバグ報告をもらった。
該当の部分はこちら

if (comment = window.prompt("[ユーザー名:" + displayname + "]で申込します。\n\nコメントをどうぞ!","よろしくおねがいします")) {


こちらがデフォルトの"よろしくおねがいします"のまま確認ないしはOKを押すとcommentには"よろしくおねがいします"が入力されるはずだが、comment""のままらしくif文が通らないらしい。prompt画面でメッセージを修正すると、問題なく修正されたメッセージが入る。

検証してみた。
以下のようなhtmlを作成

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>LIFF window.confirm test</title>
</head>
<body>
    <input type="button" onClick="buttonclick()" value="button"></input>
    <p>output : <span id="output"></span></p>
    <script>
        function buttonclick(){
            let comment = window.prompt("LIFFブラウザでwindow.prompt()でdefaultメッセージから変更しない場合、OKを押しても値が渡りません","default message");
           if(comment){
               document.getElementById("output").innerHTML = comment;
           }
        }
    </script>
</body>
</html>

スマホブラウザから実行すると問題なくpromptの返り値がデフォルトでも表示される

だがLIFFで実行した場合、デフォルトのままだと返り値はemptyで、変更して初めて戻り地がメッセージになった


ぜひ手元の端末で以下のURLから試して欲しい
https://liff.line.me/1654368044-RwMLW80k
LIFFで実行する場合は以下URLをコピーしてLINE上にペースト、初回起動でアクセスを許可して実行可能。
URL:https://liff.line.me/1654368044-RwMLW80k

これは通常のWebブラウザで期待する動きと異なった動作なのでLINE側の修正が入ってくれないと困るバグ、、、
ご対応よろしくお願いいたします。

追記 2021/10/17

ここで報告してみた
https://www.line-community.me/ja/question/616af22469e9a54065f244ab