Ionic 应用程序 - Cordova - Safari 调试不起作用

问题描述 投票:0回答:2

过去,我能够在 iPhone 上运行 Ionic Cordova 应用程序并将其插入 Mac,然后在 Mac 上打开 Safari 并转到 Develop -> PHONE_NAME -> localhost 来检查我的应用程序。

目前,当我进入“开发”菜单时,会显示 PHONE_NAME,但是该应用程序不会显示为选项。

如果我在手机上打开 Safari,它会显示为一个选项,所以我知道它可以工作,只是不适用于我的 Ionic 应用程序。

我看到 cordova-ios 6.3.0 提到他们修复了一个错误:

此版本包含一个修复程序,允许使用以下命令检查 WebView 内容 最新的 iOS 和 Xcode 版本。它还修复了 iOS 16 的错误和问题 使用 NodeJS 18。 块引用

https://cordova.apache.org/announcements/2023/04/15/cordova-ios-release-6.3.0.html

但是更新到cordova-ios 6.3.0后问题仍然存在。

还有什么想法可以尝试吗?

Mac 操作系统版本:Ventura 13.4

iPhone iOS 版本:16.5

xCode 版本:14.3.1

ios cordova ionic-framework safari cordova-ios
2个回答
2
投票

经过更多研究后,问题似乎已在 cordova-ios 上得到解决,但是 ionic 使用它自己的 webkit。

因此修复必须应用于 Ionic 的插件: https://github.com/ionic-team/cordova-plugin-ionic-webview

我发现该插件已经有一个带有修复的拉取请求: https://github.com/ionic-team/cordova-plugin-ionic-webview/pull/677

我能够通过分叉主分支、应用更改然后更新我的 package.json 来在本地为我工作,如下所示:

"cordova-plugin-ionic-webview": "github:< YourGithubUsername >/cordova-plugin-ionic-webview"

0
投票

在 CDVWKWebViewEngine.m 添加以下代码即可工作

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 160400
    // With the introduction of iOS 16.4 the webview is no longer inspectable by default.
    // We'll honor that change for release builds, but will still allow inspection on debug builds by default.
    // We also introduce an override option, so consumers can influence this decision in their own build.
    if (@available(iOS 16.4, *)) {
#ifdef DEBUG
        BOOL allowWebviewInspectionDefault = YES;
#else
        BOOL allowWebviewInspectionDefault = NO;
#endif
        wkWebView.inspectable = [settings cordovaBoolSettingForKey:@"InspectableWebview" defaultValue:allowWebviewInspectionDefault];
    }
#endif
© www.soinside.com 2019 - 2024. All rights reserved.