Write the Code. Change the World.

分类目录
4月 07

默认情况下, flutter 的 macos,windows 等配置默认是没有开启的。也就是你 flutter create 的时候,不会生成其相关配置。好吧,那么来开启。

操作一波

# 看看 config 相关的设置
flutter config --help

# 开启操作
flutter config --enable-web

flutter config --enable-macos-desktop

flutter config --enable-windows-desktop

# 关闭操作
flutter config --no-enable-web

flutter config --no-enable-macos-desktop

flutter config --no-enable-windows-desktop

当然,如果之前已经创建了项目。可以进入项目目录中,使用 flutter create . 补充起来。

3月 29

什么是UniversalLink

UniversalLinkURL Schemes 一样,都是跳转 APP 的一种方式。
简单来说就是一个 URL,当用户在浏览器中访问此 URL 时,苹果会检测对应的 APP 是否已安装。已安装则跳转到 APP。未安装则访问此 URL 实际内容。

步骤

1、让后台人员准备一个https的链接,一定要https的(微信硬性要求)

2、制作 apple-app-site-association 文件,并放置在准备好的链接根目录下

3、App Store应用管理和Xcode开启Associated Domains,并填写对应Domains

4、用GET请求测试该链接下的文件内容,并在safari浏览器中测试

5、微信开放平台和SDK注册方法填写相同UniversalLink

6、填写微信新的LSApplicationQueriesSchemes

7、回调测试

具体操作
(1)服务端文件 apple-app-site-association 。json格式,而不需要任何后缀。

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "VQXXXXXD49G.XXX.XXXX.XXXX",
                "paths": [ "/app/*"]
            }
        ]
    }
}

appID 有两部分组成,在苹果开发者平台的 “Certificates, Identifiers & Profiles” -> “All Identifiers” 选中对应的 id,进去就可以看见配置信息了。就是 App ID Prefix 和 Bundle ID 组成。

paths末尾必须是 * ,最好带一个前缀。免得域名被命中。结尾必须是 * 也是微信相关要求的。

上边这个文件传到服务根目录或根目录下的 .well-known 下。

(2)在苹果开发者账号上一步查看 App ID Prefix 和 Bundle ID 的地方,将 Associated Domains 前边打钩保存。
(3)如果涉及到微信登录,需要在开放平台中设置 Bundle ID 和 Universal Links。Bundle ID 和苹果账号中的Bundle ID 一致。Universal Links 可以定义为上一步中使用的服务域名 + paths 组成。比如: https://xxx/app/

(4) 上边的完成后,需要在 xcode 中配置一些信息。先在 ios/Runner/Info.plist 中加入以下配置:

<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixin</string>
<string>weixinULAPI</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

(5) 在 xcode 中配置 applinks。依次选择 Runner(Targets)->Signning & Capabilities->All 。在 All 的左边点击 Capability,选中并添加 Associated Domains。然后点击 + 号配置 Domains。比如: applinks:www.xxx.com (applinks 这个是固定不变的 www.xxx.com 是你的服务的地址。只需要域名即可。并且该域名无中间跳转)

(6) 在 xcode 中配置 appid。依次选择 Runner(Targets)->Info->URL Types。点击+号,添加一个。在 URL Schemes 出填写微信开发平台中申请 app 接入的 appid,Role 为默认的 Editor 即可。其他不用填。

到此,基本的配置也算完成了。然后就是测试一下。他们喜欢添加一个记事本,写个Universal Links 链接,然后点击跳转到 safari 试试效果。我这样开始是失败的。反正上边的步骤来了好几次。后来,我直接打包成 app,在APP里调用微信登录。能呼起app 也有效果。也能返回。然后再点击记事本里的链接。直接跳转到 app,而不是进入 safari。证明之前的配置是有效果的。

相关

支持通用链接

允许应用程序和网站链接到您的内容

处理通用链接

测试

参考

https://juejin.cn/post/6844904051042156551

3月 04

水波纹效果用在导航栏中的确是很难看。就是想干掉。

bottomNavigationBar 去掉水波纹效果。

套一层 Theme 搞定

bottomNavigationBar: Theme(
        data: ThemeData(
          brightness: Brightness.light,
          splashColor: Colors.transparent,
          highlightColor: Colors.transparent,
        ),
        child: BottomNavigationBar()
        )

组件大全:
https://edu.csdn.net/learn/14065

来源

https://blog.csdn.net/mubowen666/article/details/104569812/

2月 26

android studio 编译 android 端,卡在 Running Gradle task ‘assembleDebug’… 这里了 。卡在这里,卡了好久,总是不好,怎么办呢,使用网上的方法,注释加修改镜像的方法也没好。路似乎到头了。可终结还是要解决问题。弄了这么多,还不是要 gradle 。弄好 gradle 不就可以了么。

知乎上关于 gradle 的说法:
https://www.zhihu.com/question/30432152

操作一波

其实,修改镜像是可以完全解决的。这里是另外一条路。

gradle 资源:https://services.gradle.org/distributions/

目前,更新到 6.8.3 版本。那么,我们就手动将这个下下来。
继续阅读

2月 26

任何一款 app 都必须有名字,icon 以及启动页。本来这些是在交付前完成就好,因为有默认的,现在第一步来弄这个。也就是从零创建一个 flutter 程序后,就开始配置这些。

工具

在 app store 中找搜 app icon, 找到 图标构建-更快打导出图标组。该工具好用好免费。

打开 app 后,拖动你之前已经做好的 png 图片到 app 中。选择要生成的平台。这里选择 ios 和 androis,然后稍微设置下,点击导出。就帮你全自动生好了。

文件结构如下:
继续阅读

2月 26

在 ios 14+,flutter debug app 只能从工具里启动运行。一旦脱离。点击 app 就会闪退。这个时候,打 release 包就很有必要了。虽然这个包有效期是 7 天,也是好的。当然,有开发者证书更好。

原话

In iOS 14+, debug mode Flutter apps can only be launched from Flutter tooling, IDEs with Flutter plugins
or from Xcode.

Alternatively, build in profile or release modes to enable launching from the home screen.

解决方法

flutter run --release

或
flutter build ios

flutter install
2月 25

明明我就安装了 flutter 和 dart 插件,可偏偏检查说没有。咋回事呢。这个是 android studio 4.1 改变了 plugin folder 的路径。下边解决吧。

解决一波

flutter doctor 结果:

❯ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 1.22.5, on macOS 11.2.1 20D74 darwin-x64, locale
    zh-Hans-CN)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 12.4)
[!] Android Studio (version 4.1)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] VS Code
[!] Connected device
    ! No devices available

! Doctor found issues in 2 categories.

mac

# 加个软链(你可以 cd 进去看看的)
ln -s ~/Library/Application\ Support/Google/AndroidStudio4.1/plugins ~/Library/Application\ Support/AndroidStudio4.1

win

win 直接升级 flutter 版本就可以了。