cordova + ionic混合开发常见问题

news/2025/1/15 21:49:18/

1.ion-content 内置元素边距问题

在使用的过程中发现ion-content里的元素都距四周有一定的距离,在实际需求中不需要四周距离,经查阅文档去掉ion-content 里面的padding属性即可。

2.ionic app 国际化

经查阅文档和博客目前ionic+cordova混合开发的app目前国际化较好的方案是ngx-translate

2.1 插件安装

  • Angular5安装
cnpm install @ngx-translate/core@^9.11  --savecnpm install @ngx-translate/http-loader@2.0.1 --save
  • angular4安装:
npm install @ngx-translate/core@^7.2.2  --savecnpm install @ngx-translate/http-loader  --save
  • angular6+ 需要安装10.0.0+版本的国际化插件

2.2 插件设置

app.module.ts引入服务

//引入国际化
import { TranslateLoader,TranslateModule} from '@ngx-translate/core';
//加载国际化静态资源文件
import { TranslateHttpLoader} from '@ngx-translate/http-loader';
//通过http的方式加载
import { HttpClient,HttpClientModule } from "@angular/common/http";

国际化的一些配置

export function create(http:HttpClient) {
//加载资源的位置return new TranslateHttpLoader(http,'./assets/i18n/','.json');
}

加入到模块

HttpClientModule,
TranslateModule.forRoot({loader:{provide:TranslateLoader,useFactory:(create),deps:[HttpClient]
}})

创建国际化资源文件

在这里插入图片描述

内容是一个json文件,例如

en.json

{"LOGIN":{"TITLE":"ACOINFO","USER_NAME":"username","PASSWORD":"password","LOGIN_BUTTON":"sign in"},"ME":{"ACCOUNT":"account:","CHANGE_LANGUAGE":{"LABEL":"language","CANCEL":"cancel","OK":"OK"},"IMG":{"AVATAR":"./assets/imgs/logo.png"}}
}

Zh-CN.json

{"LOGIN":{"TITLE":"翼辉信息","USER_NAME":"用户名","PASSWORD":"密码","LOGIN_BUTTON":"登录"},"ME":{"ACCOUNT":"账号:","CHANGE_LANGUAGE":{"LABEL":"语言","CANCEL":"取消","OK":"确定"},"IMG":{"AVATAR":"./assets/imgs/avatar.png"}}
}

如何在页面上使用

如果不是懒加载页面则只需在在页面的ts文件中导入

import { TranslateService}from '@ngx-translate/core'

//构造函数声明变量
constructor(public navCtrl: NavController, public navParams: NavParams,public translate:TranslateService) {
}

页面使用

<ion-label>{{"ME.CHANGE_LANGUAGE.LABEL"|translate }}</ion-label>

如果延迟加载页面则在页面module.ts文件中引入

//引入
import { TranslateModule} from '@ngx-translate/core';@NgModule({declarations: [MePage,],imports: [IonicPageModule.forChild(MePage),
//引入TranslateModule],
})

2.3设置语言类型

参数就是我们我们静态资源文件名

//设置默认语言
this.translate.setDefaultLang(‘en’);
//设置使用的语言
this.translate.use(‘en’);

2.4获取本机系统语言环境

navigator对象可以获取本机系统的语言类型
navigator.language就可以获取系统语言环境

3.使用插件打包错误问题

问题原有:由于需求需要使用file-transfer文件传输插件,执行打包命令导致如下错误


C:\Users\liukai@acoinfo.co\WebstormProjects\router-management\platforms\android\src\org\apache\cordova\filetransfer\FileTransfer.java:49: ????: ?????org.apache.cordova.fil
e??????
import org.apache.cordova.file.FileUtils;^
C:\Users\liukai@acoinfo.co\WebstormProjects\router-management\platforms\android\src\org\apache\cordova\filetransfer\FileTransfer.java:851: ????: ?????????FileUtils filePlugin = (FileUtils) pm.getPlugin("File");^????: ?? FileUtils
C:\Users\liukai@acoinfo.co\WebstormProjects\router-management\platforms\android\src\org\apache\cordova\filetransfer\FileTransfer.java:851: ????: ?????????FileUtils filePlugin = (FileUtils) pm.getPlugin("File");^????: ?? FileUtils
?: ?Щ???????????????????? API??
?: ?й???????, ????? -Xlint:deprecation ???±???
?: C:\Users\liukai@acoinfo.co\WebstormProjects\router-management\platforms\android\src\org\apache\cordova\filetransfer\FileTransfer.java?????δ???????????????
?: ?й???????, ????? -Xlint:unchecked ???±???
3 ??????FAILURE: Build failed with an exception.* What went wrong:
Execution failed for task ':compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
:compileDebugJavaWithJavac FAILEDBUILD FAILEDTotal time: 2.923 secs
Error: Error code 1 for command: cmd with args: /s,/c,"C:\Users\liukai@acoinfo.co\WebstormProjects\router-management\platforms\android\gradlew cdvBuildDebug -b C:\Users\liukai@acoi
nfo.co\WebstormProjects\router-management\platforms\android\build.gradle -Dorg.gradle.daemon=true -Pandroid.useDeprecatedNdk=true"
[ERROR] An error occurred while running subprocess cordova.cordova run android exited with exit code 1.Re-running this command with the --verbose flag may provide more information.

通过查阅博客和官方社区,大致原因是,插件版本过高,cordova-android版本低于6.3.0所导致的问题。

解决方案如下:

//移除低版本的平台
ionic cordova platform remove android
//添加高版本的平台
ionic cordova platform add android@6.3.0

4. Themeable Browser插件加载不到图标

版本ionic4
将plugins/cordova-plugin-themeablebrowser/src/android/res/drawable-xhdpi/下的图片copy到platforms/android/app/src/main/res/drawable-xhdpi/back.png

github:https://github.com/liukai90/liukai90.github.io/blob/master/cordova%2Bionic/混合开发常见问题.md


http://www.ppmy.cn/news/337637.html

相关文章

固态硬盘用软件测试掉速严重,固态硬盘掉速别慌张,教你如何快速进行调节!...

昨天小狮子跟朋友玩L4D2的时候,一个朋友无意间吐槽他的固态硬盘有了比较明显的掉速现象,小狮子问他是否执行过TRIM指令或使用相关软件缓解这一情况,他表示只管用从来没有顾忌过这些,实在不行就只有申请质保了。其实这是完全没有必要的。本期小狮子就来跟大家聊聊如何手动TR…

Android 7.1 32位apk导致的系统库找不到问题

出现问题 因为我们安卓7.1系统的应用都是64位的APK&#xff0c;我们自己开发的应用是32位的APK&#xff0c;这样在启动的时候&#xff0c;就大概率的出现库找不到的问题。 错误的日志如下&#xff1a; Line 440: 03-12 10:48:39.620 634 634 W PackageManager: Instruct…

欢迎关注中文开源字体集 Open Source Fonts Collection for Chinese

一个收集可用于中文字体排印的开源字体集合。 GitHub: OSFCC 项目缘由 此前有人向我咨询&#xff0c;可否指出一些中文的开源的字体&#xff0c;故萌发了中文开源字体集合 Open Source Fonts Collection for Chinese的想法。 我在Telegram频道中推送关于Linux的消息&#xff0c…

固态硬盘用软件测试掉速严重,SSD固态硬盘掉速怎么办?手动执行TRIM指令缓解固态硬盘掉速方法...

固态硬盘掉速怎么办?最近有一个朋友无意间吐槽他的固态硬盘有了比较明显的掉速现象,小编问他是否执行过TRIM指令或使用相关软件缓解这一情况,他表示只管用从来没有顾忌过这些,实在不行就只有申请质保了。其实这是完全没有必要的。下面小编就来跟大家聊聊如何手动TRIM指令缓…

前端ThinkJS框架解析

Thinkjs 是一个快速、简单的基于MVC和面向对象的轻量级Node.js开发框架&#xff0c;遵循MIT协议发布。秉承简洁易用的设计原则&#xff0c;在保持出色的性能和至简的代码同时&#xff0c;注重开发体验和易用性&#xff0c;为WEB应用开发提供强有力的支持。 Thinkjs里面很多特性…

OpenStack Blazar 架构解析与功能实践

目录 文章目录 目录BlazarBlazar 的安装部署Blazar 的软件架构Blazar 的资源模型与状态机Blazar 的主机资源预留功能(Host Reservation)代码实现Blazar 的虚拟机资源预留(Instance Reservation)Host AggregateServer GroupInstance Reservation代码实现:Blazar 的设计思路…

美国GE通用电气 ABB瑞士德国

IC698PSA350 IC698PSA100 IC698ETM001 IC698CRE040-HN IC698CPE040-JP IC698CRE030 IC698CHS117C PM866AK02 PM851K01 PM856K01 PM860K01 PM861AK01 PM861AK02 PM864AK01 AC800M控制器单元8M RAM PM851K01 AC800M控制器单元8M RAM PM856K01 AC800M控制器单元…

Oracle字符集的简单图解,中文乱码解决

Oracle字符集的简单图解&#xff0c;中文乱码解决 经常碰到SQLPLUS展现乱码的问题&#xff0c;字符集和相关的定义都有说明但是很少有能把这些关系说的很简单易懂的。 在此之前我们需要搞清楚三个概念&#xff0c;操作系统字符集&#xff0c;客户端字符集&#xff0c;Oracle字…