移动开发

在iPhone的 Safari上无法下载文件,但在Chrome上可以
我在为在 iPhone Safari 下载文件找解决方案时遇到了困难。 我分享的代码是我应用中的当前函数。它在 Google Chrome 上能正确下载,但在 Safari 上却不起作用。 怎样修复,才能让文件在 Safari 上也能下载? const downloadDocument = async (url) => { try { const response = await fetch(url) const blob = await response.blob() const blobUrl = w
移动开发 |
本地EAS的生产与开发构建失败
因为我的Expo订阅是免费的,所以我达到了构建上限,因此必须在本地电脑上进行构建。 我执行了 npx eas build --platform android --profile production --local 命令,但出现了这个错误: [RUN_GRADLEW] [Incubating] Problems report is available at: file:///private/tmp/eas-build-local-nodejs/74502f58-b790-4718-8ce2-5a99ed
移动开发 |
Flutter:前台运行时,持续的通知声音和振动可用,但应用被关闭时则不可用(使用flutter_foreground_task)
我正在为特定通知类型(订单已接收)实现一个 持续提示音和震动。 需求 收到订单时: 播放持续循环的声音 开启重复震动 即使应用被完全终止也必须工作 仅在用户交互(接受/忽略)时停止 现有设置 我使用: firebase_messaging flutter_local_notifications 原生Android ForegroundService(Kotlin) MediaPlayer 与 USAGE_ALARM WakeLock Vibrator 波形 当前行为 ✅ 在前台时工作 ✅ 在后台时工作 ❌
移动开发 |
如何让ScrollView的内容滚动,以与另一个视图的底边对齐?
var body: some View { ZStack(alignment: .top) { dateAndTime ScrollView { VStack { storyContent } } } 在向下滚动时,如何让VStack的顶部边缘与dateAndTime标签的底部边缘对齐,而不是回弹回ScrollView的顶部? 起初,我希望VStack能隐藏dateAndTime,但我希望用户能够滚动并在停止滚动时显示dateAndTime标签,同时保持两者边缘对齐,不把滚动位置重置到顶部。 我尝试将da
移动开发 |
Android 15/16:从浏览器返回(深链接)时,Fragment中会出现日夜主题混用的情况——新创建的Fragment使用系统的暗色主题,旧的Fragment仍保持亮色主题
我有一个使用 AppCompat DayNight 的Android应用(Theme.MaterialComponents.DayNight.NoActionBar)。 目标 首次启动:应用应跟随操作系统主题(可选)。 在用户手动选择 Light 或 Dark 之后,应用必须始终使用保存的主题,即使通过deeplink从外部应用(浏览器)返回时也保持该主题。 当前实现 在Activity启动时,我在 super.onCreate() 之前应用主题: override fun onCreate(savedI
移动开发 |
泛型类型参数的多重上界
在Kotlin中,我有一个接口和一个类。比如,接口A 和类B。 我想写一个带泛型的函数或类,使其泛型参数表示所有同时是A 和B 的子类型。怎么实现呢? 当我写 时,B被认为是第二个泛型,而不是T 的超类型。 下面是一段示例代码: interface A open class B class C: B(), A class D: B(), A class E: B() class F: A fun foo(x: T) {} // How to write generic h
移动开发 |
Android已压缩的融合库
我有一个闭源的Android SDK,由第三方集成商使用。目前这是一个单体式的SDK。这个SDK相当庞大,我想开始对代码库进行模块化,在不改变外部集成商的前提下(至少现在如此)。目前该SDK仅暴露公共API,内部实现经过混淆。我们尚未对SDK进行模块化,因为子模块需要发布到Maven。并且它们的公共API将不会被混淆(而在单体版本中,公共API是混淆的,第三方无法访问)。我担心相比于保持单体结构,通过增大的公共API表面我们会暴露更多内部SDK细节。 Android fused library 插件似乎很
移动开发 |
WebView中的内容闪烁
这类在setWebViewLayerTypeHardware方法中有一个修复。如果你在onResume中移除修复的安装,即安装软件层的位置,然后在1000毫秒后再安装硬件层,那么当你返回到这个类的屏幕时,WebView的内容会被显示出来。它开始闪烁。如何在不延迟1000毫秒的情况下修复它?如果你立即修改,修复不会消失。我也尝试了在doOnLayout、preDraw、Choreographer上相同的解决方案——也没有帮助。而且我必须使用确切的硬件层 private val isWebViewClearF
移动开发 |
MSAL会将请求重定向回应用程序,但获取令牌的任务始终未完成
我正在一个.NET MAUI Blazor混合应用中使用MSAL(net10.0-android,.NET SDK 10.0.100,Android API 36.0)。 我想让用户进行交互式登录。我要调用的代码是一个内部库,基本上就是对这个调用的封装: await publicClientApplication.AcquireTokenInteractive(".default"); 我的IPublicClientApplication已经正确配置了Azure客户端ID,以及父Activity,我还添加
移动开发 |
RPBroadcastSampleHandler在倒计时结束后立即停止——AVAssetWriter在第一帧时崩溃
我需要在我的React Native Expo(bare)iOS项目中,使用ReplayKit的 Broadcast Upload Extension进行屏幕录制的帮助。 当前情况: 我的广播扩展在控制中心的“屏幕录制”下显示正确。 当我选择它时: 三秒-二秒-一秒倒计时开始 录制开始 但它会瞬间停止 因此广播实际上并未正常运行。 因为这个原因: 当我返回应用并调用stopRecording() App Group的 UserDefaults键(lastRecordingPath)为空 未返回视频路径 看
移动开发 |
ARCore的跟踪状态在TRACKING与 PAUSED之间来回切换,平面数量为0,点数量为0,hitTest总是返回空结果
症状 在调试覆盖层中: tracking: TRACKING <-> PAUSED(闪烁) failureReason: NONE(通常)/ INSUFFICIENT_LIGHT(有时当平放在地板上时) planes: 0 / points: 0 / hits: 0 即使在对明亮有纹理的地板扫描超过30秒后,也不会检测到平面。 设备与环境 设备:Samsung Galaxy(Android 14) ARCore版本:1.52.0 CameraX版本:1.5.3 ARCore配置 kotlin val cf
移动开发 |
如何在Fluent(Vapor)中查询OptionalParent关系的值为nil的记录?
以下是Fluent关于一个 OptionalParent 关系的示例:示例: final class Planet: Model { // Example of an optional parent relation. @OptionalParent(key: "star_id") var star: Star? } 我怎么查询没有 star 父级的行星?我尝试了这个,但不起作用: let wanderers = try await Planet.query(on: myDb) .filter(\.$st
移动开发 |
Microsoft Graph的 PowerShell脚本输出结果不正确
我想用Graph从 Intune获取所有iOS设备。 在Graph Explorer测试时,使用 "https://graph.microsoft.com/v1.0/deviceManagement/managedDevices?$filter=startswith(operatingSystem, 'iOS')&$select=UserPrincipalName,deviceName,managedDeviceOwnerType,managementState,operatingSystem,compl
移动开发 |
性能问题:Android TV上的2×2与 3×3网格的视频播放卡顿
我在测试我的Android TV应用时遇到了性能问题。 当我配置一个2x2的网格布局并从设备存储播放本地视频(每个大约1 GB)时,在实体电视设备上播放会出现卡顿。视频要么会卡顿,要么无法流畅播放。然而,同样的配置在Android TV模拟器上运行平滑。 我想了解: 这是否与Android TV的硬件视频解码能力相关的限制? 是否有并行播放多路高分辨率本地视频的推荐做法? 我是否应该降级视频质量或限制比特率以获得更好的性能? 是否有针对电视设备的ExoPlayer优化建议用于多视频播放? 对于在真实And
移动开发 |
Flutter:在平板设备上强制竖屏界面(iOS与 Android),即使设备处于横屏状态,也要避免出现黑边
我有一个Flutter应用,手机和平板上应该保持竖屏模式。 我想要的: 即使用户把设备横向持握,应用也应保持竖屏界面。 我无法创建横向布局 我希望应用仍然看起来全屏显示(没有黑边/信箱效应) 当前设置(Flutter): Future main() async { WidgetsFlutterBinding.ensureInitialized(); await SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitU
移动开发 |
如何在我的视图中更新 @State变量?
struct ContentView: View { @State var inputs1:Array = ["*", "*", "*"] @State var inputs2:Array = ["*", "*", "*"] var body: some View { VStack(alignment: .center) { let inputRow1 = createRow(inputs1[0], inputs1[1], inputs1[2]) inputRow1 let
移动开发 |
YouTube视频在浏览器中可以正常播放,但在Flutter应用中失败,错误码为152-4
我正在开发一个Flutter应用(已在Android 12和 Android 14上测试)并使用 youtube_player_iframe(或youtube_player_flutter)嵌入YouTube视频。 视频: 在手机的Chrome浏览器上工作完美 设置为 "未公开" 允许嵌入 无年龄限制 无版权声明 然而,在Flutter应用中,视频无法加载并显示: 错误代码:152-4 “本视频不可用。请在YouTube上观看。” 环境: Flutter SDK:3.x Android设备:Moto G6
移动开发 |
SwiftUI的滚动视图:GeometryReader与 PreferenceKey的问题
我正在打造一个SwiftUI风格的“记分牌”界面:一个ScrollView,顶部只有一个固定头部。随着滚动,固定头部应更新显示当前活动的分区(NBA/NHL等),类似于一个粘性“当前分类”标签。 我目前的做法是: 每个分区在顶部插入一个GeometryReader 每个GeometryReader将一个标记(id、minY)写入一个PreferenceKey onPreferenceChange会在每帧读取所有标记,基于阈值找到活动的分区,并更新一个 @State的 activeLeagueID 固定头部
移动开发 |
通过ExtensionMacro的协议符合,隐式的resultBuilder会丢失
我很确定这件事现在还不可能,但我还是发帖,希望我错了。 一个简单的 protocol,它使用一个简单的 resultBuilder: @resultBuilder public enum MyResultBuilder { public static func buildBlock ( _ components: String... ) -> [ String ] { components } } public protocol MyProtocol { @MyResultBuilder var stri
移动开发 |
在SwiftUI中,颜色填充不会跟随圆角
我定义了如下形状: struct DisplayView: View { var body: some View { ZStack{ RoundedRectangle(cornerRadius: 20) .stroke(Color.black, lineWidth: 1) VStack{ ScrollView { VStack (spacing: 10) { ForEach (0..<30) { Text("Item \($0)") .font(.title) } } .frame(maxWidth: .
移动开发 |