标签: ionic-native

IONIC Android apk文件大小太大!如何减少Android应用程式的大小?

我已经使用ionic 3开发了该应用程序,现在在生成android apk文件时,它的大小变得太大了。

在API集成之前,一旦开始API 交互,文件大小为4.8MB,我刚修改了10页,然后APK文件大小变为71 MB

我使用过的Cordova插件

cordova-plugin-console 
cordova-plugin-datepicker
cordova-plugin-device
cordova-plugin-network-information
cordova-plugin-splashscreen
cordova-plugin-statusbar
cordova-plugin-whitelist
cordova-plugin-x-socialsharing
cordova-sqlite-storage
es6-promise-plugin
ionic-plugin-keyboard
Run Code Online (Sandbox Code Playgroud)

我解压缩了APK文件,以了解发生了什么事,我查看了资产/ www /文件夹中的build文件夹(重357MB),其中包含js文件和MAP文件

WWW中的Rest Assests文件夹包含4.5 MB的Css文件

如何减少android apk应用程序的大小?

cordova ionic-framework cordova-plugins ionic-native ionic3

4
推荐指数
2
解决办法
4113
查看次数

Ionic 原生文件插件的 getFile() 方法

我在app上使用原生文件插件Ionic 3你能告诉我如何在它上面使用getFile ()方法吗?我找不到那个方法的正确实现。它的签名如下。但我不知道如何给出directoryEntry参数。

getFile(directoryEntry, fileName, flags)
Run Code Online (Sandbox Code Playgroud)

ionic-framework ionic2 ionic-native ionic3 angular

3
推荐指数
1
解决办法
5493
查看次数

离子3:无法解析SQLiteObject的所有参数:(?)

我正在使用Here(Ionicframework.com)的 Ionic 3 SQLite本机插件,这是我的构造函数代码:

constructor(public navCtrl: NavController, 
            public menu: MenuController, 
            translate: TranslateService,
            private tts: TextToSpeech,
            private sqlite: SQLite) {

   this.sqlite.create({
      name: 'data.db',
      location: 'default'
      }).then((db: SQLiteObject) => {
        db.executeSql('create table IF NOT EXISTS `localflags`(`flag1` VARCHAR(10),`flag2` VARCHAR(10),`flag3` VARCHAR(10), `flag4` VARCHAR(10));', {})
          .then(() => console.log('Table created!!!'))
          .catch(e => console.log(e));
      }).catch(e => console.log(e));
        }
Run Code Online (Sandbox Code Playgroud)

所以,当我使用"ionic cordova run android -lc"在设备上运行时,它会给我这个错误,

Can't resolve all parameters for SQLiteObject: (?)

此代码来自离子原生文档.这是非常基本的代码,我是新手,所以我无法弄清楚这有什么问题.

任何帮助将不胜感激.如果有人能指出我的Ionic 3 SQLite教程,那将是很棒的.提前致谢.

sqlite cordova ionic-native ionic3

3
推荐指数
1
解决办法
2093
查看次数

如何在Ionic 3中使用Cordova插件蓝牙?

附加信息:

我知道访问cordova插件的常用方法

(<any>window).plugins.myPlugin 

or

declare var yourGloballyAccessablePlugin: any;
Run Code Online (Sandbox Code Playgroud)

但它与插件不同bluetoothle(通过离子3支持的本机蓝牙插件都不够好,因为它们不提供蓝牙功能peripherial如广告)

解决方案尝试:

我在离子论坛上找到了一个相关的问题,并询问他们是如何实现的,到目前为止,我未能重复该过程,到目前为止,没有人回答我的问题,这就是为什么要开放这个问题。

显然,蓝牙公开了一个全局可访问的变量。

如前所述,我在declaration.d.ts文件src夹中添加了以下内容:

declare module 'cordova-plugin-bluetoothle';
import 'cordova-plugin-bluetoothle';
declare var cordova: any;
Run Code Online (Sandbox Code Playgroud)

然后,我尝试像这样访问插件(在手机上对其进行了测试):

import { bluetoothle } from 'cordova-plugin-bluetoothle';

...

(<any>window).bluetoothle
Run Code Online (Sandbox Code Playgroud)

问题:

但是蓝牙对我来说始终是不确定的。由于我是Cordova,Ionic和TypeScript的新手,我想我使用clarifications.d.ts的方式有问题

那么,有人知道我在做什么错如何在ionic 3中使用cordova原生插件bluetoothle?

更新,解决方案尝试2

因此,我尝试按照app.component.ts@Webruster的建议在初始项目结构中运行此代码,并使用蓝牙文档中的init参数:

(这里的唯一目标是查看插件是否正常工作)

进口...

declare var cordova: any;
Run Code Online (Sandbox Code Playgroud)

@Component,类开始和属性...

  constructor(private translate: TranslateService, platform: Platform, settings: Settings, private config: Config, private statusBar: StatusBar, private splashScreen: SplashScreen) {
    platform.ready().then(() => …
Run Code Online (Sandbox Code Playgroud)

cordova typescript ionic-framework ionic-native

3
推荐指数
1
解决办法
4040
查看次数

Ionic 3-在初始屏幕显示期间隐藏状态栏

我有一个带有Ionic 3的应用程序,并且在您的app.component.ts中,我使用Statusbar ionic插件将其隐藏,但是,只有在平台就绪启动后才会发生这种情况。

如何在启动画面期间将其隐藏?我试过了:

–在启动画面期间不隐藏,仅在此隐藏之后–在启动画面期间不更改背景颜色

解决方案?

ionic-framework ionic2 ionic-native ionic3

3
推荐指数
1
解决办法
1543
查看次数

离子应用程序在Chrome检查中显示localhost:8080

离子技术的初学者。创建项目离子启动Myapp空白离子Cordova运行android后面临的问题

@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0
Run Code Online (Sandbox Code Playgroud)

全局软件包:

cordova (Cordova CLI) : 8.0.0
Run Code Online (Sandbox Code Playgroud)

本地套餐:

@ionic/app-scripts : 3.1.11
Cordova Platforms  : android 7.0.0
Ionic Framework    : ionic-angular 3.9.2
Run Code Online (Sandbox Code Playgroud)

系统:

Android SDK Tools : 26.1.1
Node              : v8.11.2
npm               : 5.6.0
OS                : Windows 10
Run Code Online (Sandbox Code Playgroud)

环境变量:

ANDROID_HOME : C:\Users\XXX\AppData\Local\Android\Sdk
Run Code Online (Sandbox Code Playgroud)

其他:

backend : pro.
Run Code Online (Sandbox Code Playgroud)

运行应用程序后使用android设备进行检查。chrome:// inspect /#devices存在以下差异! 在此处输入图片说明

上图和URL以localhost:8080开头

图片下方的网址以file:///android_asset/www/index.html开头

在此处输入图片说明

如何在每个离子项目中使用chrome inspect而不是localhost:8080将URL作为file:///android_asset/www/index.html获取?

由于此问题,面临以下问题:对预检请求的响应未通过访问控制检查:在所请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问源' http:// localhost:8080 '。响应的HTTP状态码为400。

google-chrome-devtools ionic-framework ionic-view ionic-native ionic3

3
推荐指数
1
解决办法
1389
查看次数

不能将类型“ AppVersionOriginal”分配给类型“提供者”。类型“ AppVersionOriginal”缺少以下属性

我使用下面的最新版本的Ionic CLI v4.9.0创建了新的Ionic 3应用程序

$ ionic start Ionic3Project blank --type ionic-angular
Run Code Online (Sandbox Code Playgroud)

默认情况下会创建V4 Ionic项目。

然后我在这里按照步骤进行本机应用程序版本插件

导入app.module.ts文件时遇到以下控制台错误

Uncaught Error: Invalid provider for the NgModule 'AppModule' - only instances of Provider and Type are allowed, got: [StatusBar, ?[object Object]?, ...]
at syntaxError (compiler.js:486)
at compiler.js:15784
at Array.forEach (<anonymous>)
at CompileMetadataResolver._getProvidersMetadata (compiler.js:15752)
at CompileMetadataResolver.getNgModuleMetadata (compiler.js:15320)
at JitCompiler._loadModules (compiler.js:34413)
at JitCompiler._compileModuleAndComponents (compiler.js:34374)
at JitCompiler.compileModuleAsync (compiler.js:34268)
at CompilerImpl.compileModuleAsync (platform-browser-dynamic.js:239)
at PlatformRef.bootstrapModule (core.js:5578)
Run Code Online (Sandbox Code Playgroud)

app.module.ts文件

    import { BrowserModule } from '@angular/platform-browser';
    import { …
Run Code Online (Sandbox Code Playgroud)

ionic-framework ionic-native ionic4

3
推荐指数
1
解决办法
660
查看次数

在模块 ts 中输入提供者时出错

当我尝试使用import nativepagetransition提供程序时,它显示了一个错误。

import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';
import { LinkPage } from '../pages/link/link';
import { NativePageTransitions } from '@ionic-native/native-page-transitions';

import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';

@NgModule({
declarations: [
MyApp,
HomePage,
LinkPage,


],
imports: [
BrowserModule,
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
HomePage,
LinkPage …
Run Code Online (Sandbox Code Playgroud)

ionic-framework ionic-native ionic3

3
推荐指数
1
解决办法
783
查看次数

Ionic 4 禁用 iOS 仅在一页中滑动返回

iOS只想在一页中禁用而不是全局禁用,所以让 \xe2\x80\x99s 说用户结账并付款,我不希望用户在获得后返回到他所在的位置收据。我希望用户留在该页面而不能向后滑动,在 android 中我已经禁用了硬件按钮,而在iOS我有点挣扎。

\n\n

我已经添加到app.module:

\n\n
IonicModule.forRoot({ swipeBackEnabled: false })\n
Run Code Online (Sandbox Code Playgroud)\n\n

这会禁用全局向后滑动,这就是我不想要的,我也尝试过这个:

\n\n

关于禁用向后滑动的文章

\n\n

我跟着它,但仍然无法达到我想要的,

\n\n

我也不明白用户最后说的话:

\n\n

当前的实现仅适用于应用程序中的单个实例IonRouterInstance,但如果您在自己的应用程序中需要,可以通过支持其他实例来增强它。

\n\n

他所说的“作品与单曲”是什么意思?

\n\n

非常感谢,任何帮助将不胜感激。

\n

back swipe ios ionic-framework ionic-native

3
推荐指数
1
解决办法
3268
查看次数

检查我的 ionic 应用程序在 AppStore 和 PlayStore 上是否有新版本

我想向基于 Ionic 的应用程序添加功能,以检查相应的应用程序商店是否有更新版本,如果存在,则提示用户下载一次(不要重复 - 他们应该能够跳过并且不会被打扰)。与Siren类似,但适用于 Ionic 以及 Google Play 和 Apple App Store。我看到对本机应用程序和 AppStore 的类似请求以及对 Play Store 的类似请求,但没有任何特定于 Ionic 的请求。我觉得我可以使用应用程序版本和这些请求中列出的 ajax 调用将其缝合在一起,但必须有其他人已经这样做了,并且拥有现有的 Cordova/Capacitor 插件。此外,可能存在细微差别,即简单的解决方案可能会失败(即ajax调用失败、应用商店更改API、设备不支持更新版本等)。

是否有现有的插件或代码可以实现上述行为?

ionic-framework ionic-native

2
推荐指数
1
解决办法
3512
查看次数