安裝控件
ionic cordova plugin add uk.co.workingedge.cordova.plugin.sqliteporter出現異常 :
Refusing to run ionic cordova plugin inside a Capacitor project.
解決:
ionic integrations disable capacitor
安裝控件
ionic cordova plugin add uk.co.workingedge.cordova.plugin.sqliteporter出現異常 :
Refusing to run ionic cordova plugin inside a Capacitor project.
解決:
ionic integrations disable capacitor
< ion-header>
< ion-toolbar>
< ion-title>
List Wifi AP
< /ion-title>
< /ion-toolbar>
< /ion-header>
< ion-content padding>
< ion-button color="primary" (click)="getNetworks()">Get Networks< /ion-button>
{{info_txt}}
< ion-list>
< ion-item *ngFor="let data of results">
{{data.SSID}} -
{{data.BSSID}}
< /ion-item>
< /ion-list>
< /ion-content>
import { Component } from '@angular/core';
declare var WifiWizard2: any;
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
results = [];
info_txt = "";
async getNetworks() {
this.info_txt = "loading...";
try {
let results = await WifiWizard2.scan();
this.results = results;
this.info_txt = "";
} catch (error) {
this.info_txt = error;
}
}
}
npm install -g ionic
ionic start capApp tabs --capacitor
npx cap init
--capacitor上面創建Ionic項目時沒有添加標誌,或者有現有的Ionic項目,則沒問題。運行以下命令:cd capApp
ionic integrations enable capacitor
npx cap init
wwwIonic項目中的文件夾):ionic build
npx cap add ios
npx cap add android
android和ios文件夾。這些是完全獨立的本機項目工件,應將其視為Ionic應用程序的一部分(即,將其檢入源代碼控制中)。src/app/tab2文件夾下的Tab2 HTML頁面。添加一個圖像標籤,以顯示使用相機拍攝的當前照片,並添加一個Ionic fab按鈕,單擊該按鈕將打開相機:<ion-content>
<img [src]="photo" >
<ion-fab vertical="bottom" horizontal="center" slot="fixed">
<ion-fab-button (click)="takePicture()">
<ion-icon name="camera"></ion-icon>
</ion-fab-button>
</ion-fab>
</ion-content>
src/app/tab2/tab2.page.ts並導入電容器插件和相機類:import { Plugins, CameraResultType, CameraSource } from '@capacitor/core';
takePicture()方法:export class Tab2Page {
async takePicture() {
const image = await Plugins.Camera.getPhoto({
quality: 100,
allowEditing: false,
resultType: CameraResultType.DataUrl,
source: CameraSource.Camera
});
this.photo = this.sanitizer.bypassSecurityTrustResourceUrl(image && (image.dataUrl));
}
}
Camera.getPhoto()將打開設備的相機並允許我們拍照。DomSanitizer通過構造函數注入並用於sanitizer.bypassSecurityTrustResourceUrl()允許將圖像數據顯示在我們的應用程序中:import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
export class Tab2Page {
photo: SafeResourceUrl;
constructor(private sanitizer: DomSanitizer) { }
}
import { Component } from '@angular/core';
import { Plugins, CameraResultType, CameraSource } from '@capacitor/core';
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
@Component({
selector: 'app-tab2',
templateUrl: 'tab2.page.html',
styleUrls: ['tab2.page.scss']
})
export class Tab2Page {
photo: SafeResourceUrl;
constructor(private sanitizer: DomSanitizer) { }
async takePicture() {
const image = await Plugins.Camera.getPhoto({
quality: 100,
allowEditing: false,
resultType: CameraResultType.DataUrl,
source: CameraSource.Camera
});
this.photo = this.sanitizer.bypassSecurityTrustResourceUrl(image && (image.dataUrl));
}
}
ionic serve
Console選項卡。然後,導航至選項卡2,然後單擊新創建的Camera fab按鈕。控制台中出現錯誤:ERROR Error: Uncaught (in promise): TypeError: cameraModal.present is not a functionnpm install @ionic/pwa-elements
@ionic/pwa-elements通過編輯導入src/main.ts:import { defineCustomElements } from '@ionic/pwa-elements/loader';
// Call the element loader after the platform has been bootstrapped
defineCustomElements(window);
ionic serve並單擊Camera fab按鈕。如果您的計算機有任何類型的網絡攝像頭,則會顯示一個模態窗口,您可以拍照!
“我很帥。” - 作者copy命令,該命令將所有Web資產(在這種情況下為Ionic Angular應用程序)複製到本地iOS項目中:npx cap copy
sync命令:npx cap sync
open命令,以Xcode打開本機iOS項目:npx cap open ios
App在左側的Project Navigator中單擊,然後在該Signing部分中,選擇您的開發團隊。
Camera.getPhoto()調用後,iOS會自動顯示一個模式對話框,提示用戶允許該應用使用相機。要進行設置,Info.plist必須修改文件(
Info.plist都有一個低級參數名稱和一個高級名稱。默認情況下,屬性列表編輯器顯示高級名稱,但是切換到顯示原始的低級名稱通常很有用。為此,請在屬性列表編輯器中的任意位置單擊鼠標右鍵,然後切換“顯示原始鍵/值”。NSCameraUsageDescription鍵(或添加鍵)並將“值”設置為描述應用程序為何需要使用相機的原因,例如“拍照”。權限提示打開時,該值將顯示給應用程序用戶。

copy命令,該命令將所有Web資產(在這種情況下為Ionic Angular應用程序)複製到本地Android項目中:npx cap copy
sync命令:npx cap sync
open命令,這將在Android Studio中打開本機Android項目:npx cap open android
AndroidManifest.xml文件中配置這些。Android Studio可能會自動打開此文件,但如果沒有打開,請在下找到它android/app/src/main/。
Permissions部分,並確保包括以下條目:<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

