在xcode中构建时,Cordova inappbrowser无法工作。

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

从4月30日开始,苹果不允许使用低于13的SDK构建应用程序。我曾经使用Phonegap构建我的应用程序(https:/build.phonegap.com。)但它使用SDK 12。现在,我试图使用Xcode构建我的应用程序。

每次我使用Phonegap构建并使用测试分发配置文件在我的手机上安装这个构建,都能正常工作,但是当我使用与Phonegap构建相同的config.xml构建应用程序时,inappbrowser就不能工作了。

我认为这与SKD 13的UIWebView被禁用有关。因此,我使用Cordova提供的教程来实现WkWebview。

我试着删除除了wkwebview-engine和inappbrowser以外的所有插件,但没有任何效果。

  • Cordova CLI 9.0.0
  • inappbrowser 3.2.0
  • wkwebview-engine 1.2.1
  • ios平台添加5.1.1

我的config.xml

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.app.name" version="0.2.13" xmlns="http://www.w3.org/ns/widgets"
        xmlns:cdv="http://cordova.apache.org/ns/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
  <name>appname</name>
  <description>
  </description>
  <author email="mymail" href="mywebsite">
    my name
  </author>
  <content src="dist/index.html"/>
  <platform name="ios"/>
  <platform name="android"/>
  <feature name="http://api.phonegap.com/1.0/network"/>
  <preference name="permissions" value="none"/>
  <preference name="phonegap-version" value="cli-9.0.0"/>
  <preference name="orientation" value="portrait"/>
  <preference name="target-device" value="universal"/>
  <preference name="prerendered-icon" value="true"/>
  <preference name="detect-data-types" value="false"/>
  <preference name="exit-on-suspend" value="false"/>
  <preference name="deployment-target" value="7.0"/>
  <preference name="webviewbounce" value="false"/>
  <preference name="stay-in-webview" value="false"/>
  <preference name="ios-statusbarstyle" value="black-opaque"/>
  <preference name="ShowSplashScreenSpinner" value="true"/>
  <preference name="AutoHideSplashScreen" value="true"/>
  <preference name="android-minSdkVersion" value="19"/>
  <preference name="android-targetSdkVersion" value="28"/>
  <preference name="android-installLocation" value="auto"/>
  <preference name="android-windowSoftInputMode" value="stateVisible|adjustResize"/>
  <preference name="DisallowOverscroll" value="true"/>
  <preference name="ShowSplashScreen" value="true"/>
  <preference name="FadeSplashScreen" value="false"/>
  <preference name="SplashScreenDelay" value="2000"/>
  <preference name="FadeSplashScreenDuration" value="0"/>
  <platform name="android">
    <preference name="fullscreen" value="false"/>
    <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
      <application android:usesCleartextTraffic="true"/>
    </edit-config>
  </platform>
  <platform name="ios">
    <preference name="fullscreen" value="false"/>
  </platform>  
  <access origin="*"/>
  <allow-navigation href="*"/>
  <allow-navigation href="*://*youtube.com"/>
  <access origin="mailto:*" launch-external="true"/>
  <allow-intent href="http://*/*"/>
  <allow-intent href="https://*/*"/>
  <allow-intent href="tel:*"/>
  <allow-intent href="sms:*"/>
  <allow-intent href="mailto:*" launch-external="yes"/>
  <allow-intent href="geo:*"/>
  <platform name="android">
    <allow-intent href="market:*"/>
  </platform>
  <platform name="ios">
    <allow-intent href="itms:*"/>
    <allow-intent href="itms-apps:*"/>
    <allow-navigation href="mailto:*" launch-external="yes"/>
  </platform>
  <feature name="TouchID">
    <param name="ios-package" value="TouchID"/>
  </feature>
  <platform name="ios">
    <preference name="WKWebViewOnly" value="true" />
    <feature name="CDVWKWebViewEngine">
      <param name="ios-package" value="CDVWKWebViewEngine" />
    </feature>
    <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
  </platform>
  <plugin name="cordova-plugin-inappbrowser" spec="3.2.0" />
  <plugin name="cordova-plugin-wkwebview-engine" spec="1.2.1" />
</widget>

在测试之前,我这样做是为了确保所有插件都是全新安装的。

rm -rf package-lock.json package.json platforms plugins/* node_modules
cordova platform add [email protected]

我在xcode控制台中没有收到任何响应,只是在构建完成后收到这个信息。

2020-05-13 16:23:33.805959+0200 App[7410:670156] [Accessibility] ****************** Loading GAX Client Bundle ****************
2020-05-13 16:23:33.996820+0200 App[7410:670156] Apache Cordova native platform version 5.1.1 is starting.
2020-05-13 16:23:33.998789+0200 App[7410:670156] Multi-tasking -> Device: YES, App: YES
2020-05-13 16:23:34.016143+0200 App[7410:670156] 

Started backup to iCloud! Please be careful.
Your application might be rejected by Apple if you store too much data.
For more information please read "iOS Data Storage Guidelines" at:
https://developer.apple.com/icloud/documentation/data-storage/
To disable web storage backup to iCloud, set the BackupWebStorage preference to "local" in the Cordova config.xml file
2020-05-13 16:23:34.282716+0200 App[7410:670156] CDVWKWebViewEngine will reload WKWebView if required on resume
2020-05-13 16:23:34.283306+0200 App[7410:670156] Using WKWebView
2020-05-13 16:23:34.284438+0200 App[7410:670156] [CDVTimer][console] 0.174999ms
2020-05-13 16:23:34.285355+0200 App[7410:670156] [CDVTimer][handleopenurl] 0.338078ms
2020-05-13 16:23:34.290426+0200 App[7410:670156] Unlimited access to network resources
2020-05-13 16:23:34.291285+0200 App[7410:670156] [CDVTimer][intentandnavigationfilter] 5.457997ms
2020-05-13 16:23:34.292067+0200 App[7410:670156] [CDVTimer][gesturehandler] 0.302076ms
2020-05-13 16:23:34.292696+0200 App[7410:670156] [CDVTimer][TotalPluginStartup] 8.646965ms

我已经没有办法解决这个问题了. 也许有人有一些新的想法,所以我可以尝试一些新的东西.

ios xcode cordova inappbrowser
1个回答
0
投票

好不容易找到了答案。我的文件结构是wwwdistindex.html,里面有cordova.js的链接。

<script type="text/javascript" src="cordova.js"></script>

它需要的。

<script type="text/javascript" src="../cordova.js"></script>

除此之外,在执行命令的过程中,

cordova platform add [email protected]

有一些黄色的信息,例如:

Failed to install 'cordova-plugin-inappbrowser': Error: Cannot find module 'glob'

我忽略了它们,因为... 黄色的

经过一番研究,我发现了这个问题的解决方法。

cordova platform rm ios

然后再一次:

cordova platform add [email protected]

第二次插件安装成功,这次inappbrowser又能用了。

目前这是个解决方法,问题是为什么我得到的是 "cordova-plugin-inappbrowser "安装失败。错误,无法找到模块'glob'信息。当第一次添加平台时,找不到模块'glob'的信息...?

© www.soinside.com 2019 - 2024. All rights reserved.