小编srk*_*man的帖子

从 PhoneGap Build 转换为本地 Cordova CLI

我有几个目前依赖 PhoneGap Build 为 Andriod 和 iOS 创建本机应用程序的应用程序。由于未能升级到最新的 Cordova iOS 版本来满足 Apple 的要求,Adobe 似乎即将放弃 iOS 兼容性。是时候转向 CLI 了。我希望以前做过这件事的人可以提供一些关于他们如何做到这一点的提示。特别是对工作流程、处理密钥和 config.xml 等的更改。

更新 1:我一直在使用自动化工作流程取得进展,这是我到目前为止所学到的(在 MacOS 上):

  • 加载 Cordova 是脆弱的。我不得不在互联网上搜索了几次,以克服在加载所有内容时遇到的问题。
  • 创建 Cordova 项目目录时,您应该添加 ios 和 android 平台之前使用您的内容填充 config.xml、res 和 www 。否则“cordova clean”会中断。
  • 如果您使用 build.json,如果在使用之前更改它,则必须“cordova clean”。
  • 为 iOS 构建,然后在 XCode 中打开 {cordovaDir}/platforms/ios/{proj}.xcworkspace,然后加载您的证书和配置文件(选择顶级目录以获取常规设置页面)。您必须关闭“自动管理签名”才能设置所有内容。
  • 我无法让“自动”签名工作(请参阅 Cordova CLI 9.X 文档)。我使用了手动过程。通过使用文本编辑器编辑配置文件并搜索“UUID”来获取 UUID。
  • 在 Cordova CLI 构建过程中,代码签名者会多次询问您的密码。自动化就这么多。有没有办法解决?

如果我有什么问题,请告诉我。

更新 2:

  • 设置 iOS(手动)登录新项目时。您需要关闭“自动管理签名”,设置您的配置文件,然后退出 XCode。然后重新打开 xcworkspace 文件并打开“自动管理签名”。您需要这最后一步才能使手动签名工作。您需要在两者之间退出,否则,当您返回“自动管理签名”时,XCode 将不会记住您的配置文件。奇怪的。
  • 在构建 apk 和 ipa 时,我发现我必须手动输入密码 4 次。您必须授予钥匙串访问权限才能自动让协同设计者使用您的密钥以避免这种情况。

更新 3: …

cordova phonegap-build

9
推荐指数
1
解决办法
2458
查看次数

Safari 11在访问localStorage时获取SecurityError(DOM异常18)

我刚刚升级到Safari 11.我一直在通过Safari直接打开html文件来调试我的WebApp.升级后,它会获得"SecurityError(DOM Exception 18)"当应用程序访问localStorage时,操作不安全.

这是我的安全政策标签;

<meta http-equiv="Content-Security-Policy"  
  content="default-src 'self' file:// *;  
  style-src * 'self' 'unsafe-inline' 'unsafe-eval';  
  script-src * 'self' 'unsafe-inline' 'unsafe-eval';"  
>  
Run Code Online (Sandbox Code Playgroud)

这在以前版本的Safari以及Chrome,FIreFox等上运行良好.

有什么想法吗?

safari

6
推荐指数
1
解决办法
2262
查看次数

Android 4.4 WebView中忽略了视口元标记

我有一个在Android和IOS上运行的App/WebApp.我在IOS和Android上将其部署为WebApp和本机PhoneGap应用程序.我使用PhoneGap Build构建本机应用程序.平板电脑用户界面的内部像素宽度为768,可在iPad和iPad Mini上正常工作.对于Nexus(纵向为601px宽)我通过将视口宽度设置为768px并将缩放设置为:

var gViewportScale = (Math.min(window.screen.width, window.screen.height) / window.devicePixelRatio) / 768;

if (gViewportScale >= 1) {
    document.getElementById("viewport").content
        = "width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no";
} else {
    document.getElementById("viewport").content
        = "width=768, initial-scale=" + gViewportScale + ", minimum-scale=" + gViewportScale + ", maximum-scale=" + gViewportScale + ", user-scalable=yes";
}
Run Code Online (Sandbox Code Playgroud)

这模仿了iPad Mini的行为.几个月前,这个工作很好.我认为当我升级到Android 4.4并更改为Chromium时,这可能已经破裂.现在,Android PGB原生App的活动区域比显示器宽.WebApp继续像以前一样在Android Chrome(33.0.1750.136)中正确显示(即它以纵向填充显示宽度).也适用于IOS中的本机App或WebApp.

我已经尝试了几种替代方案和所有当前版本的PGB和附近,因为我可以告诉Android WebView忽略了使用PhoneGap的视口元标记,但没有在Chrome上.它当然看起来像一个Android bug,它可以在一个而不是另一个上运行.

我在PhoneGap支持社区中问过这个问题,到目前为止还没有很好的答案.我以为我会在这里试试.当然,我可以为Nexus提供单独的CSS,但宽度和字体的真正缩放会更好.

android android-webview cordova

5
推荐指数
1
解决办法
8431
查看次数

Cordova 应用程序外部链接在 iOS 上不起作用

我有一个 Cordova 应用程序(使用 PGB 构建),外部链接在 iOS 上停止工作。这些链接在 Android 上和作为 Web 应用程序运行良好,但在 iOS 上不行。我尝试了 UIWebView 和 WkWebView。这曾经在所有平台上都运行良好。我不确定它什么时候坏掉的(Cordova 6 或 iOS 11)。我使用白名单插件:

<access origin="*"/>
<allow-navigation href="*" />
<allow-intent href="*" />
Run Code Online (Sandbox Code Playgroud)

CORS 标头是:

<meta http-equiv="Content-Security-Policy"
    content="default-src 'self' gap://ready file://* *;
    style-src * 'self' 'unsafe-inline' 'unsafe-eval';
    script-src * 'self' 'unsafe-inline' 'unsafe-eval';"
>
Run Code Online (Sandbox Code Playgroud)

链接都是外部的。我不需要也不希望它们出现在应用程序 WebView 中。我更喜欢 Safari 的单独实例。我还需要使用 inappbrowser 插件吗?

view ios web cordova cordova-plugins

4
推荐指数
1
解决办法
2649
查看次数