如何在 ionic cli 中使用 pnpm 或 Bun 代替 npm?与 npm 相比,它有一些好的好处,比如较小的存储使用量、下载某些包时显示进度等等......
如何在设备上使用预加载所有策略并在浏览器上使用不预加载?我们可以像这样加载所有模块:
imports: [
CommonModule,
RouterModule.forRoot(appRoutes, { preloadingStrategy: PreloadAllModules }),
...
],
Run Code Online (Sandbox Code Playgroud)
这将在任何平台上预加载所有模块,但我想防止在浏览器上运行时预加载。并且它只能在设备上预加载
通过向 config.xml 添加 MODIFY_AUDIO_SETTINGS 权限,我的应用程序将在运行后崩溃。
<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/uses-permission" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
</edit-config>
Run Code Online (Sandbox Code Playgroud)
然后运行应用程序:
ionic cordova run android -- device
Run Code Online (Sandbox Code Playgroud)
我也尝试获取 ionic android 权限
import { AndroidPermissions } from '@ionic-native/android-permissions/ngx';
this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.CAMERA).then(
result =>console.log('Haspermission?',result.hasPermission),
err =>this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.CAMERA)
);
Run Code Online (Sandbox Code Playgroud)
但没有弹出窗口询问用户许可。最后我直接使用了cordova权限
ionic cordova plugin add cordova-plugin-android-permissions
declare var cordova:any
var permissions = cordova.plugins.permissions;
permissions.requestPermission(permissions.RECORD_AUDIO, successCallback, errorCallback);
Run Code Online (Sandbox Code Playgroud)
我可以获得相机或 record_audio 的许可,但 requestPermission 对于 MODIDY_AUDIO_SETTINGS 许可返回 false。
permissions.requestPermission(permission.MODIDY_AUDIO_SETTINGS, success, error);
function error() {
resolve(false);
}
function success(status) {
if (status.hasPermission) { // <-- status.hasPermission is false here …Run Code Online (Sandbox Code Playgroud) webrtc cordova android-permissions getusermedia ionic-framework
我想手动移到下一张幻灯片,但出现错误。我试过这样:
<ion-slides #sliderRef pager="true" (ionSlideWillChange)="onSlideChangeStart($event)">
<ion-button (click)="slideNext()">Next</ion-button>
Run Code Online (Sandbox Code Playgroud)
并在 ts 文件中:
import { Component, OnInit, ViewChildren, ElementRef } from '@angular/core';
import { IonSlides } from '@ionic/angular';
export class AppointmentPage implements OnInit {
@ViewChild('sliderRef', { static: true }) protected slides: ElementRef<IonSlides>;
constructor(){}
async slideNext(): Promise<void> {
await this.slides.nativeElement.slideNext();
}
...
}
Run Code Online (Sandbox Code Playgroud)
通过调用 slideNext() 我有这个错误:
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'slideNext' of undefined
Run Code Online (Sandbox Code Playgroud) angular ×1
angular-cli ×1
cordova ×1
getusermedia ×1
ion-slides ×1
ionic-cli ×1
ionic-native ×1
ionic4 ×1
pnpm ×1
webrtc ×1