如何检查我是否在 cordova 应用程序中使用 WKWebview 而不是 UIWebview

How to check am I using WKWebview instead of UIWebview in cordova app

我的应用程序在使用 Adob​​e PhoneGap Build 时出现显示问题。我通过将 UIWebveiw 迁移到 WKwebview 以某种方式解决了它。由于 PhoneGap Build 结束了它的服务,我正在尝试使用 cordova 命令来构建我的应用程序,但出现了同样的问题。

我尝试了几个 config.xml 设置,还尝试将 Xcode 的“构建设置”>“用户定义”>“WK_WEB_VIEW_ONLY”设置为 1。但仍然有这个问题。

我不确定我是否在使用WKwebview。如果不是,我的设置有什么问题?如果是,接下来我应该尝试什么?

以下是我构建应用程序的方式:

  1. 我通过 cordova create <Folder> <BundleID> <MyProjectName>
  2. 创建我的项目
  3. 将我的网站放入“www”文件夹
  4. 然后cordova platform add ios(我用的是cordova-ios@6.2.0)
  5. 单击我的 .xcodeproj 并单击 Xcode 中的构建按钮(类似于“播放”的三角形按钮)。

这是我的 config.xml:

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.test.test" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>test</name>
    <description>Sample Apache Cordova App</description>
    <author email="dev@cordova.apache.org" href="https://cordova.apache.org">
        Apache Cordova Team
    </author>
    <content src="index.html" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <preference name="WKWebViewOnly" value="true" />

    <feature name="CDVWKWebViewEngine">
        <param name="ios-package" value="CDVWKWebViewEngine" />
    </feature>

    <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
</widget>

my files image

这是我的 main.m ,我不熟悉 swift 但它似乎在我的应用程序中使用 UIWebveiw 而不是 WKwebview。

#import <UIKit/UIKit.h>

int main(int argc, char* argv[])
{
    @autoreleasepool {
        int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
        return retVal;
    }
}

这个问题困扰了我很长时间,我想不通为什么以及如何解决。 先谢谢你了。

如果你已经升级到Cordova iOS 6+,就不需要再指定WKWebView了,因为它默认是WebView。

<preference name="WKWebViewOnly" value="true" />
<feature name="CDVWKWebViewEngine">
    <param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

这些在 Cordova 中已过时

this and this