【问题标题】:Flutter Sending SMS with URL_launcher with body text gat form dialog颤振发送带有 URL_launcher 的 SMS 和正文 gat 表单对话框
【发布时间】:2022-06-15 05:50:20
【问题描述】:

我正在尝试向 31003 发送短信,其中我的短信内容将是“LS”空格“用户许可证号”,但在将我的插件 URL_launcher 更新为 6.1.3 后,它显示了一些错误。

    import 'package:flutter/material.dart';
    import 'package:get/get.dart';
    import 'package:url_launcher/url_launcher.dart';
    
    final Uri _url1 = Uri.parse('sms:31003?body=LC%20');
    final textFieldController = TextEditingController();
    
    class SeeSms extends StatelessWidget {
      const SeeSms({Key? key}) : super(key: key);
      
    
      @override
      Widget build(BuildContext context) {
        return GridView.count(
          crossAxisCount: 2,
          primary: false,
          padding: const EdgeInsets.all(20),
          crossAxisSpacing: 5,
          mainAxisSpacing: 5,
          childAspectRatio: 1,
          children: <Widget>[
            InkWell(
              onTap: _launchURL1,
              child: Container(
                //padding: const EdgeInsets.all(10),
                padding: const EdgeInsets.only(top: 20),
                decoration: BoxDecoration(
                  image: const DecorationImage(
                    image: AssetImage('assets/images/ntc.png'),
                    fit: BoxFit.cover,
                  ),
                  borderRadius: BorderRadius.circular(10),
                  boxShadow: const [
                    BoxShadow(
                      color: Color(0x19000000),
                      blurRadius: 20,
                      offset: Offset(0, 1),
                    ),
                  ],
                ),
              ),
            ),
          ],
        );
      }
    
      _launchURL1() async {
        // get license number from user via dialog
        String licenseNumber = await Get.defaultDialog(
          radius: 3,
          titlePadding: const EdgeInsets.only(top: 20, bottom: 20),
          contentPadding: const EdgeInsets.only(left: 20, right: 20),
          title: 'Enter License Number',
          content: TextField(
            controller: textFieldController,
            autofocus: true,
            decoration: const InputDecoration(
              hintText: 'Example: 01-01-00012345',
            ),
          ),
          confirm: Padding(
            padding: const EdgeInsets.only(bottom: 20.0, top: 20.0),
            child: ElevatedButton(
              child: const Text('Send SMS '),
              onPressed: () {
                Get.back();
                launchUrl(_url1 + textFieldController.text);
              },
            ),
          ),
        );
      }
    }

这一切都很好,但是“参数类型 'String' 不能分配给参数类型 'Uri'”会导致此错误。这个问题在

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    您确定这是您遇到的错误吗?我宁愿怀疑这一点:

    参数类型“动态”不能分配给参数类型 '乌里'。

    无论哪种方式,从url_launcher 版本 6.1.0 开始,launchUrl() 方法将 URI 作为参数而不是字符串。所以你必须通过例如_url1 到方法为launchUrl(_url1)

    此外,如果我没记错的话,你不能像 _url1 + textFieldController.text 那样在 URI 和字符串之间简单地使用 + 运算符

    【讨论】:

      猜你喜欢
      • 2021-01-08
      • 1970-01-01
      • 2021-07-31
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 2020-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多