iT邦幫忙

0

Flutter應用在工業手機如何讀得中文?

  • 分享至 

  • xImage

各位先進好,我的需求是要實作一個輸入框,在不跳出鍵盤的情況下讓人透過工業手機本身的條碼槍掃QR Code來取得內容,原始碼附在下方。

目前作法是搭配KeyboardListener與TextField的keyboardType: TextInputType.none,雖然能夠實作出上述的效果,但僅能刷出英數字...如果QR Code內包含中文字時就會造成功能失效(刷不出),KeyEvent也沒有接到中文字..

由於小妹原來是寫C#,平常是開發網頁與應用程式,對於手機完全不熟悉,臨時被指派APP開發..目前都是參考Flutter官方文件跟網路上的一些資訊來理解&開發,目前在這個功能上已經卡了好多天..一直找不到解決方案,因此發文請教是否有業界的先進可以提供我一些方向或解決辦法? 謝謝大家!!

工業手機是 Andriod 7.1.2 版本

import 'package:flutter/material.dart';

class Test extends StatefulWidget {
  const Test({Key? key, required this.title}) : super(key: key);
  static const routeName = '/test';
  final String title;

  @override
  State<Test> createState() => _Test();
}

class _Test extends State<Test> {
  final _control = TextEditingController();
  final FocusNode _focusKeyboard = FocusNode();

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
        ),
        body: Container(
            padding: const EdgeInsets.only(top: 20.0, left: 10.0, right: 10.0),
            child: Column(
              children: <Widget>[
                KeyboardListener(
                  onKeyEvent: (KeyEvent e){
                    debugPrint(e.toString());
                  },
                  focusNode: _focusKeyboard,
                  child: TextField(controller: _control, keyboardType: TextInputType.none,
                      onChanged: (val){
                        debugPrint("onChanged: $val");
                      },
                    onEditingComplete: (){
                      debugPrint("onEditingComplete");
                    },
                    onSubmitted: (val) {
                      debugPrint("onSubmitted: $val");
                    },
                  ),
                )
              ],
            )));
  }

}
froce iT邦大師 1 級 ‧ 2022-08-28 15:29:08 檢舉
qrcode中文是用什麼編碼?
我是使用utf-8
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
海綿寶寶
iT邦大神 1 級 ‧ 2022-08-27 10:25:58

將可掃中文QRCODE的 app (例如:這個)裝在工業手機上,掃掃看,如果:
1.可以掃出中文,可能是你flutter程式問題
2.不能掃出中文,可能是工業手機問題(不支援中文)

另外請教一下
app 使用的是那一個 package

我是用這個這種工業手機:
https://www.ute.com/tw/products/detail/EA520
他的裝置上方有配備掃描槍,使用方式是按下左右的藍色按鈕,就可以掃描了,我目前用工業手機內andriod的其他輸入框,例如備註、Google搜尋框,均可以正常刷入中文,只有我用Flutter開發的輸入框不行..
我目前認為是Flutter的關係,但我希望是因為我不會寫..因為我其他功能都寫好了..剩下這個問題 T_T

0
IgnacioZhang
iT邦新手 4 級 ‧ 2022-08-30 00:48:45

也許你也可以試試 RawKeyboardListener 看會不會有更多訊息

有使用RawKeyboardListener,他跟KeyboardListener好像有點像,不過如果是要印中文還是印不出來,一樣是只有英數字有抓到..

0
jordandes
iT邦新手 5 級 ‧ 2022-09-23 10:33:36

除非是工業手機用的ASOP有問題,不然目前看起來應該是你所使用的QR CODE套件有問題。

我要發表回答

立即登入回答