feat(app):添加移动端对iOS及iPadOS的支持 - #1908
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 864a83f841
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| PhonyRootWindow.Show(); | ||
| PlatformServices.WindowPlatformService.SetWindowFeature(PhonyRootWindow, WindowFeatures.ToolWindow | WindowFeatures.SkipManagement | WindowFeatures.Transparent, true); | ||
| UriSource = new Uri(args[0]), | ||
| ShowAsMonochrome = args.Length >= 2 && bool.TryParse(args[2], out var r1) && r1 |
There was a problem hiding this comment.
Use the second bitmap argument for monochrome parsing
When a bitmap icon expression supplies the optional monochrome flag as the second argument, e.g. bitmap(uri,true), args.Length is 2 but this indexes args[2], causing the handler to throw and IconExpressionHelper.TryParse to return false. In that scenario the icon expression silently fails instead of applying the flag; this should read the second argument (args[1]).
Useful? React with 👍 / 👎.
| VerticalSafeAreaPx = 20 | ||
| }); | ||
| // 教程 | ||
| if (System.OperatingSystem.IsWindows() || System.OperatingSystem.IsMacOS() && System.OperatingSystem.IsLinux()) |
There was a problem hiding this comment.
Register tutorials on non-Windows desktop platforms
On macOS and Linux this condition can never pass, because a process cannot be both IsMacOS() and IsLinux(). As a result the built-in getting-started tutorial group is only registered on Windows, so desktop users on macOS/Linux lose the tutorial despite the surrounding platform checks elsewhere treating all three as desktop platforms.
Useful? React with 👍 / 👎.
| <ApplicationTitle>ClassIsland</ApplicationTitle> | ||
| </PropertyGroup> | ||
| <PropertyGroup Condition="'$(BrandType)' == 'Beta'"> | ||
| <ApplicationId>cn.classisland.android,beta</ApplicationId> |
There was a problem hiding this comment.
Replace the comma in the Android beta application ID
When building the Android project with BrandType=Beta, this sets the application ID to cn.classisland.android,beta; Android application/package IDs cannot contain commas, so beta APK packaging/manifest validation will fail or produce an unusable package for that build flavor. This looks like the production/dev pattern intended cn.classisland.android.beta.
Useful? React with 👍 / 👎.
|
@codex review |
# Conflicts: # .github/workflows/build_release.yml # ClassIsland.Platforms.Abstractions/PlatformServices.cs # ClassIsland.Platforms.Abstractions/Services/ILauncherService.cs # ClassIsland.Platforms.Abstractions/Services/IPlatformFilePickerService.cs # ClassIsland.Platforms.Abstractions/Stubs/Services/AvaloniaDefaultPlatformFilePickerService.cs # ClassIsland/App.axaml.cs # ClassIsland/Controls/EditMode/EditModeView.axaml.cs # ClassIsland/Helpers/ProfileTransferHelpers/CsesExportHelper.cs # ClassIsland/PluginLoadContext.cs # ClassIsland/Services/DiagnosticService.cs # ClassIsland/Services/UriNavigationService.cs # ClassIsland/Views/CrashWindow.axaml.cs # ClassIsland/Views/DataTransferPage.axaml.cs # ClassIsland/Views/ProfileSettingsWindow.axaml.cs # ClassIsland/Views/RecoveryPages/HomePage.axaml.cs # ClassIsland/Views/SettingPages/AboutSettingsPage.axaml.cs # ClassIsland/Views/SettingPages/AutomationSettingsPage.axaml.cs # ClassIsland/Views/SettingPages/ComponentsSettingsPage.axaml.cs # ClassIsland/Views/SettingPages/PluginsSettingsPage.axaml.cs # ClassIsland/Views/SettingPages/StorageSettingsPage.axaml.cs # ClassIsland/Views/SettingPages/ThemesSettingsPage.axaml.cs # ClassIsland/Views/SettingsWindowNew.axaml.cs # ClassIsland/Views/TutorialEditorWindow.axaml.cs # build/Build.App.cs # build/Build.cs
|
目前基本功能已正常,在本人ipad上已测试1天,系统通知与实时活动功能正常 |
|
工作流已整合,但是ios构建可能比较慢 |
|
根据新的pr准则,补充实现思路: |
这个 Pull Request 做了什么?
基于/develop/v2/android分支,移植了iOS版本,上下课时有系统通知,代码通过 ClassIsland.Platforms.Abstraction 提供的纯 C# API 调用实时活动与灵动岛。
同时,在Github Action中添加“Build iOS”,用来构建未签名的ipa,实际安装仍需用户自行签名
检查清单