安裝控件
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
www
Ionic項目中的文件夾):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 function
npm 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" />