1

我用 Flutter 开发了一个嵌入网页的游戏。在 iPad 上的 Safari 上,这些操作都不适用于手指触摸。他们只响应鼠标点击。它们确实会响应移动设备上 Chrome 上的手指触摸。

在第一个屏幕上,有一个简单的平面按钮,带有 onPressed 导航到下一个屏幕。该按钮在 Chrome、Firefox 甚至 Safari 上都可以正常工作,但对于这个,只能使用鼠标。如果我在 iPad 上的 Safari 上尝试游戏,onPressed 不能用手指触摸,也不能用铅笔。

我嵌入带有 onTap 的 InkWell 小部件中的徽标也是如此。

这是游戏页面:http: //www.maxetom.com/jeux_lecture/son_a1.php

这是按钮的代码:

import 'package:flutter/material.dart';

class OrangeButton extends StatelessWidget {
  final String screenName;
  final String text;

  OrangeButton(this.text, this.screenName);

  void callNextScreen(BuildContext context) {
    Navigator.of(context).pushNamed(screenName);
  }

  @override
  Widget build(BuildContext context) {
    return ClipRRect(
      borderRadius: BorderRadius.circular(15),
      child: FlatButton(
        color: Theme.of(context).accentColor,
        textColor: Colors.white,
        onPressed: () => callNextScreen(context),
        child: Container(
          alignment: Alignment.center,
          width: 120,
          height: 50,
          child: Text(
            text,
            style: Theme.of(context).textTheme.bodyText1,
          ),
        ),
      ),
    );
  }
}

这是 InkWell + onTap 的代码:

import 'package:url_launcher/url_launcher.dart';
import 'package:flutter/material.dart';

class Logo extends StatelessWidget {
  const Logo({
    Key key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: Colors.transparent,
      alignment: Alignment.centerRight,
      padding: const EdgeInsets.symmetric(vertical: 2.0, horizontal: 5.0),
      child: Material(
        color: Theme.of(context).primaryColorDark,
        child: InkWell(
          child: Text(
            'maxetom',
            style: TextStyle(
              fontFamily: 'Bradley',
              fontWeight: FontWeight.bold,
              fontSize: 20,
              color: Colors.white,
              letterSpacing: 1.5,
            ),
            textAlign: TextAlign.right,
          ),
          onTap: () async {
            final url = 'http://www.maxetom.com/';
            if (await canLaunch(url)) {
              await launch(
                url,
                forceSafariVC: false,
              );
            }
          },
        ),
      ),
    );
  }
}

我使用“Flutter build web”来构建 web 版本的发行版。

我可能错过了一些东西。有人有想法吗?

谢谢!

4

0 回答 0