GVKun编程网logo

cordova – ionic硬件显示广告后无法恢复工作

4

在这里,我们将给大家分享关于cordova–ionic硬件显示广告后无法恢复工作的知识,同时也会涉及到如何更有效地Cordova/Ionic插件管理的最佳实践?、cordovaionicbuild(待

在这里,我们将给大家分享关于cordova – ionic硬件显示广告后无法恢复工作的知识,同时也会涉及到如何更有效地Cordova / Ionic插件管理的最佳实践?、cordova ionic build(待整理)、cordova – Ionic 3 – ios – 在屏幕上显示所选图像、cordova – Ionic Framework Phonegap Build:工作流程的内容。

本文目录一览:

cordova – ionic硬件显示广告后无法恢复工作

cordova – ionic硬件显示广告后无法恢复工作

离子版:
 3.X

目前的行为:
在注册硬件之后,如果显示广告,则按下硬件退出应用程序并且不会绑定到正常行为

预期行为:
硬件返回应执行已注册的功能

重现步骤:

>使用任何模板添加创建新应用.
>添加无admob插件
>注册hardwarback以记录某些内容(不退出).
>展示广告.
>按硬件

相关代码:

在app.component.ts的构造函数中注册后处理程序

platform.registerBackButtonAction(() => {
    console.log("Back pressed");
  });

显示横幅广告或插页式广告,然后无需在应用中按任何内容按后退按钮.
该应用程序将退出.我们没有退出处理程序中的应用程序.

APP REPO HERE.

一个相关的问题可以在here.看到

离子信息:

cli packages: (C:\Users\prantikv\AppData\Roaming\npm\node_modules)

    @ionic/cli-utils  : 1.12.0
    ionic (Ionic CLI) : 3.12.0

global packages:

    cordova (Cordova CLI) : 7.0.1

local packages:

    @ionic/app-scripts : 3.0.0
    Cordova Platforms  : android 6.0.0
    Ionic Framework    : ionic-angular 3.7.1

System:

    Android SDK Tools : 25.2.5
    Node              : v6.11.3
    npm               : 5.4.2
    OS                : Windows 10

Misc:

    backend : pro

解决方法

将addeventlistener添加到文档中,并在捕获阶段捕获事件.触发事件时stopPropagation将有用,以防止其他事件侦听器触发.

document.addEventListener("backbutton",onBackKeyDown,true);

Cordova / Ionic插件管理的最佳实践?

Cordova / Ionic插件管理的最佳实践?

检查Ionic / Cordova项目插件的最佳做法是什么?

我想最小化检入我的项目的文件数量.主要是我不想检查我的项目从外部源下载的任何文件,也想要遗漏使用我的构建命令生成的任何文件.

希望检查我的项目,然后运行ionic platform add< platform> ;离子构建<平台>并且很高兴去.

我不确定如何在root config.xml文件或plugins /< platform> .json文件中实现

我也尝试过使用hooks / after_platform_add / 010_install_plugins.js,到目前为止这似乎是最好的选择.

任何提示将非常感谢谢谢.

解决方法

在钩子中做这件事并不是一个坏主意.以下是该想法的一个例子: http://jbavari.github.io/blog/2014/06/24/managing-cordova-plugins-with-package-dot-json-and-hooks/

cordova ionic build(待整理)

cordova ionic build(待整理)

Gradle 离线包解决方法

http://stackoverflow.com/questions/29874564/ionic-build-android-error-when-download-gradle

I had the same problem. I added gradle to my project offline.

After downloading gradle from issued link (here is http://services.gradle.org/distributions/gradle-2.2.1-all.zip) paste it in somewhere likes myApp\platforms\android\gradle\gradle-2.2.1-all.zip and in build.js from myApp\platforms\android\cordova\lib\build.js find this:

var distributionUrl = ''distributionUrl=http\\://services.gradle.org/distributions/gradle-2.2.1-all.zip'';

And replace it with your own file''s location:

var distributionUrl = ''distributionUrl=../gradle-2.2.1-all.zip'';


Gradle 镜像设置问题

使用oschina的镜像, 文件路径 myApp\platforms\android\build.gradle

用以下语句替换mavenCentral()就可以了。
maven {
  url ''http://maven.oschina.net/content/groups/public/''
}


cordova – Ionic 3 – ios – 在屏幕上显示所选图像

cordova – Ionic 3 – ios – 在屏幕上显示所选图像

我设置了相机插件以从照片库中选择图像并使用以下代码将其上传到服务器:

getimage() {
  //By default the camera retrieves the image as a JPEG file.
  const options: CameraOptions = {
    quality: 100,destinationType: this.camera.DestinationType.FILE_URI,sourceType: this.camera.PictureSourceType.PHOTOLIBRARY,targetWidth:1080,targetHeight:1080,correctOrientation: true,mediaType: this.camera.MediaType.PICTURE,encodingType: this.camera.EncodingType.JPEG

  }

  this.camera.getPicture(options).then((fileUri) => {

    if (this.platform.is(''ios'')) {
        return this.crop.crop(fileUri,{quality: 100});
      } else if (this.platform.is(''android'')) {
        // Modify fileUri format,may not always be necessary
        fileUri = ''file://'' + fileUri;

        /* Using cordova-plugin-crop starts here */
        return this.crop.crop(fileUri,{ quality: 100 });
      }
  },(err) => {
    console.log(err);

  }).then((path) => {
    // path looks like ''file:///storage/emulated/0/Android/data/com.foo.bar/cache/1477008080626-cropped.jpg?1477008106566''
    console.log(''Cropped Image Path!: '' + path);
    this.imagePath = path;
    return path;
  });
}

然后,我在屏幕上显示我的图像预览,如下所示:

<img [src]="imagePath"  />

在iOS和Android上,选择图像,裁剪和上传工作都非常好.但是,在iOS上,图像的显示不起作用. (什么都没有显示)

我的控制台日志显示以下内容:

2017-12-07 15:06:52.559614-0500 fd-app[2537:1186586] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2017-12-07 15:06:52.560425-0500 fd-app[2537:1186586] [MC] Reading from public effective user settings.
2017-12-07 15:06:55.754175-0500 fd-app[2537:1186662] [discovery] errors encountered while discovering extensions: Error Domain=PlugInKit Code=13 “query cancelled” UserInfo={NSLocalizedDescription=query cancelled}
2017-12-07 15:07:04.589982-0500 fd-app[2537:1186586] Cropped Image Path!: file:///var/mobile/Containers/Data/Application/8B2CD0E8-F6AC-4530-BF02-D2F7A188EAC2/tmp/cdv_photo_004.jpg

我尝试将照片库使用情况属性添加到Info.plist文件,但这没有帮助.有什么建议接下来要尝试什么?

更新:不确定这是否与它有关,但我使用的是Xcode 9.2 beta,因为我的iPhone是11.2

此外,我正在谷歌搜索的一切指向这是一个权限问题的事实,但是,选择图像后,图像出现在裁剪器…这让我怀疑这里发生了什么奇怪的事情?裁剪器如何显示图像而不显示HTML页面?

解决方法

如果您使用 WKWebview这是IOS 11中的默认webview,根据官方 blog post,您需要 rewrite文件:// url才能在HTML中使用.

If you’re working with local files (text files,images,videos),you’ll need to make sure that the path of file does not have file:// in front of it.

import { normalizeURL } from ''ionic-angular'';

在你的功能中,

this.imagePath = normalizeURL(path);
    return path;

进一步检查troubleshooting section,它说的相同.

cordova – Ionic Framework Phonegap Build:工作流程

cordova – Ionic Framework Phonegap Build:工作流程

我正在尝试使用Phonegap Build编译我的Ionic应用程序(我正在使用Mac,因此我无法编译到iOS).

什么是最好的工作流程?

谢谢

解决方法

整夜和整个上午打完这场比赛之后,我想出了一个黑客的解决方案.
希望它可以帮助某人.

至于离子v1.0,至少对于我的简单项目来说,最大的区别就是

> config.xml
>所有图像资源都在./resources中

我做了什么:
config.xml更改:

>基于config.xml在.www / config_phonegap.xml中创建了一个新文件
>在widget节点上将名称空间更改为phonegap(xmlns:gap =“http://phonegap.com/ns/1.0”)
>使用正则表达式搜索替换将所有图标和启动标记更改为相应的phonegap等效项
>手动为任何插件创建必要的“gap:plugin”标签

gulp添加:

>创建了一个gulp任务,将.www /转换为./phonegap文件夹
> gulp任务也复制资源
> gulp task coipies over config_phonegap.xml并将其重命名为config.xml
> gulp任务压缩我们的新www文件夹. (zip文件中应该没有顶级www.即我们只想压缩www的内容)

这意味着我的构建工作流程(直到我需要在config.xml中更改某些内容)现在看起来像这样:

> gulp phonegap
>将phonegap.zip上传到https://build.phonegap.com

显然这里有很多需要改进的地方,但我现在需要用它来发布.在创建静态config_phonegap.xml之前,我探讨了一些想法,比如JS中的xml解析或制作XSLT文件.对于努力量,这点似乎是低回报,所以我没有坚持到底.

这是相关的代码位供参考
正则表达式:

### icon regex
# android
<icon src="([\.\w\\-]+)" density="([\w-]+)"/>
<icon src="$1" gap:platform="android" gap:qualifier="$2"/>

# ios
<icon src="([@\.\w\\-]+)" width="([\d]+)" height="([\d]+)"/>
<icon src="$1" gap:platform="ios" width="$2" height="$3" />


### splash regex
# android
<splash src="([\.\w\\-]+)" density="([\w-]+)"/>
<gap:splash src="$1" gap:platform="android" gap:qualifier="$2" />

#ios
<splash src="([~@\.\w\\-]+)" width="([\d]+)" height="([\d]+)"/>
<gap:splash src="$1" gap:platform="ios" width="$2" height="$3" />

示例phonegap兼容config.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget id="com.yadda.yadda" version="2.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0">
  <name>my app name</name>
  <description>
        la di da desc
  </description>
  <author email="blah@diblah.com" href="https://harhar.com/">w--</author>

  <content src="index.html"/>
  <access origin="*"/>

  <preference name="webviewbounce" value="false"/>
  <preference name="UIWebViewBounce" value="false"/>
  <preference name="disallowOverscroll" value="true"/>
  <preference name="BackupWebStorage" value="none"/>
  <preference name="SplashScreen" value="screen"/>
  <preference name="SplashScreenDelay" value="1500"/>

  <icon src="resources/android/icon/drawable-ldpi-icon.png" gap:platform="android" gap:qualifier="ldpi"/>
  <icon src="resources/android/icon/drawable-mdpi-icon.png" gap:platform="android" gap:qualifier="mdpi"/>
  <icon src="resources/android/icon/drawable-hdpi-icon.png" gap:platform="android" gap:qualifier="hdpi"/>
  <icon src="resources/android/icon/drawable-xhdpi-icon.png" gap:platform="android" gap:qualifier="xhdpi"/>
  <icon src="resources/android/icon/drawable-xxhdpi-icon.png" gap:platform="android" gap:qualifier="xxhdpi"/>
  <icon src="resources/android/icon/drawable-xxxhdpi-icon.png" gap:platform="android" gap:qualifier="xxxhdpi"/>
  <gap:splash src="resources/android/splash/drawable-land-ldpi-screen.png" gap:platform="android" gap:qualifier="land-ldpi" />
  <gap:splash src="resources/android/splash/drawable-land-mdpi-screen.png" gap:platform="android" gap:qualifier="land-mdpi" />
  <gap:splash src="resources/android/splash/drawable-land-hdpi-screen.png" gap:platform="android" gap:qualifier="land-hdpi" />
  <gap:splash src="resources/android/splash/drawable-land-xhdpi-screen.png" gap:platform="android" gap:qualifier="land-xhdpi" />
  <gap:splash src="resources/android/splash/drawable-land-xxhdpi-screen.png" gap:platform="android" gap:qualifier="land-xxhdpi" />
  <gap:splash src="resources/android/splash/drawable-land-xxxhdpi-screen.png" gap:platform="android" gap:qualifier="land-xxxhdpi" />
  <gap:splash src="resources/android/splash/drawable-port-ldpi-screen.png" gap:platform="android" gap:qualifier="port-ldpi" />
  <gap:splash src="resources/android/splash/drawable-port-mdpi-screen.png" gap:platform="android" gap:qualifier="port-mdpi" />
  <gap:splash src="resources/android/splash/drawable-port-hdpi-screen.png" gap:platform="android" gap:qualifier="port-hdpi" />
  <gap:splash src="resources/android/splash/drawable-port-xhdpi-screen.png" gap:platform="android" gap:qualifier="port-xhdpi" />
  <gap:splash src="resources/android/splash/drawable-port-xxhdpi-screen.png" gap:platform="android" gap:qualifier="port-xxhdpi" />
  <gap:splash src="resources/android/splash/drawable-port-xxxhdpi-screen.png" gap:platform="android" gap:qualifier="port-xxxhdpi" />

  <icon src="resources/ios/icon/icon.png" gap:platform="ios" width="57" height="57" />
  <icon src="resources/ios/icon/icon@2x.png" gap:platform="ios" width="114" height="114" />
  <icon src="resources/ios/icon/icon-40.png" gap:platform="ios" width="40" height="40" />
  <icon src="resources/ios/icon/icon-40@2x.png" gap:platform="ios" width="80" height="80" />
  <icon src="resources/ios/icon/icon-50.png" gap:platform="ios" width="50" height="50" />
  <icon src="resources/ios/icon/icon-50@2x.png" gap:platform="ios" width="100" height="100" />
  <icon src="resources/ios/icon/icon-60.png" gap:platform="ios" width="60" height="60" />
  <icon src="resources/ios/icon/icon-60@2x.png" gap:platform="ios" width="120" height="120" />
  <icon src="resources/ios/icon/icon-60@3x.png" gap:platform="ios" width="180" height="180" />
  <icon src="resources/ios/icon/icon-72.png" gap:platform="ios" width="72" height="72" />
  <icon src="resources/ios/icon/icon-72@2x.png" gap:platform="ios" width="144" height="144" />
  <icon src="resources/ios/icon/icon-76.png" gap:platform="ios" width="76" height="76" />
  <icon src="resources/ios/icon/icon-76@2x.png" gap:platform="ios" width="152" height="152" />
  <icon src="resources/ios/icon/icon-small.png" gap:platform="ios" width="29" height="29" />
  <icon src="resources/ios/icon/icon-small@2x.png" gap:platform="ios" width="58" height="58" />
  <icon src="resources/ios/icon/icon-small@3x.png" gap:platform="ios" width="87" height="87" />
  <gap:splash src="resources/ios/splash/Default-568h@2x~iphone.png" gap:platform="ios" width="640" height="1136" />
  <gap:splash src="resources/ios/splash/Default-667h.png" gap:platform="ios" width="750" height="1334" />
  <gap:splash src="resources/ios/splash/Default-736h.png" gap:platform="ios" width="1242" height="2208" />
  <gap:splash src="resources/ios/splash/Default-Landscape-736h.png" gap:platform="ios" width="2208" height="1242" />
  <gap:splash src="resources/ios/splash/Default-Landscape@2x~ipad.png" gap:platform="ios" width="2048" height="1536" />
  <gap:splash src="resources/ios/splash/Default-Landscape~ipad.png" gap:platform="ios" width="1024" height="768" />
  <gap:splash src="resources/ios/splash/Default-Portrait@2x~ipad.png" gap:platform="ios" width="1536" height="2048" />
  <gap:splash src="resources/ios/splash/Default-Portrait~ipad.png" gap:platform="ios" width="768" height="1024" />
  <gap:splash src="resources/ios/splash/Default@2x~iphone.png" gap:platform="ios" width="640" height="960" />
  <gap:splash src="resources/ios/splash/Default~iphone.png" gap:platform="ios" width="320" height="480" />

  <icon src="icon.png"/>
  <gap:splash src="splash.png" />

 <!-- so android doesnt'' go bat shit crazy -->
  <preference name="permissions" value="none"/>

 <!-- plugins -->
  <feature name="StatusBar">
    <param name="ios-package" value="CDvstatusBar" onload="true"/>
  </feature>
 <gap:plugin name="cordova-plugin-statusbar" source="npm" version="1.0.0">
   <param name="onload" value="true" />
 </gap:plugin>
 <gap:plugin name="cordova-plugin-splashscreen" source="npm" version="2.0.0" />
</widget>

吞咽任务:

// **** Build phonegap *****/
var PHONEGAP_BUILD_FOLDER = ''../phonegap'',PHONEGAP_RAW_FOLDER = ''www'',IONIC_SOURCE_FOLDER = ''./www'',IONIC_RESOURCE_FOLDER = ''./resources''
      PHONEGAP_ZIP_FILE = ''phonegap_build.zip'';

gulp.task(''phonegap'',function(cb){
  runSequence(''clean_phonegap'',''copy_www'',''copy_resources'',''copy_phonegap_config_xml'',''copy_default_icon'',''copy_default_splash'',''zip_phonegap'',cb);
});

gulp.task(''clean_phonegap'',function(cb){
  // clean our folder first
  var phonegap_del_pattern = PHONEGAP_BUILD_FOLDER + ''/*'';
  del([phonegap_del_pattern],{force: true},cb);
})

gulp.task(''copy_www'',function(){
  var target_phonegap_folder = PHONEGAP_BUILD_FOLDER + ''/'' + PHONEGAP_RAW_FOLDER
  return gulp.src([IONIC_SOURCE_FOLDER + ''/**''])
              .on(''error'',swallowError)
              .pipe(gulp.dest(target_phonegap_folder))
})

gulp.task(''copy_phonegap_config_xml'',function(){
  var target_phonegap_folder = PHONEGAP_BUILD_FOLDER + ''/'' + PHONEGAP_RAW_FOLDER
  return gulp.src([''config_phonegap.xml''])
              .on(''error'',swallowError)
              .pipe(rename(''config.xml''))
              .pipe(gulp.dest(target_phonegap_folder));
})

gulp.task(''copy_resources'',function(){
  var target_phonegap_folder = PHONEGAP_BUILD_FOLDER + ''/'' + PHONEGAP_RAW_FOLDER + ''/resources'',exclude_pattern = ''!'' + IONIC_RESOURCE_FOLDER + ''/_source_assets{,/**}''

  // exclude pattern needs to go first. mother fucker.
  return gulp.src([exclude_pattern,IONIC_RESOURCE_FOLDER + ''/**''])
              .on(''error'',swallowError)
              .pipe(gulp.dest(target_phonegap_folder));
})

gulp.task(''copy_default_icon'',function(){
  var target_phonegap_folder = PHONEGAP_BUILD_FOLDER + ''/'' + PHONEGAP_RAW_FOLDER;
  return gulp.src([IONIC_RESOURCE_FOLDER + ''/ios/icon.png'' ])
              .on(''error'',swallowError)
              .pipe(gulp.dest(target_phonegap_folder));
})

gulp.task(''copy_default_splash'',function(){
  var target_phonegap_folder = PHONEGAP_BUILD_FOLDER + ''/'' + PHONEGAP_RAW_FOLDER;
  return gulp.src([IONIC_RESOURCE_FOLDER + ''/splash.png'' ])
              .on(''error'',swallowError)
              .pipe(gulp.dest(target_phonegap_folder));
})


gulp.task(''zip_phonegap'',function(){
  var sourcephonegap_folder = PHONEGAP_BUILD_FOLDER + ''/'' + PHONEGAP_RAW_FOLDER
  return gulp.src(sourcephonegap_folder + ''/**'')
        .pipe(zip(''phonegap.zip''))
        .on(''error'',swallowError)
        .pipe(gulp.dest(PHONEGAP_BUILD_FOLDER));
})

今天关于cordova – ionic硬件显示广告后无法恢复工作的介绍到此结束,谢谢您的阅读,有关Cordova / Ionic插件管理的最佳实践?、cordova ionic build(待整理)、cordova – Ionic 3 – ios – 在屏幕上显示所选图像、cordova – Ionic Framework Phonegap Build:工作流程等更多相关知识的信息可以在本站进行查询。

本文标签: