问题描述
我有一个 ionic 5浏览器平台应用。 ı内置条形码阅读器。当ı从手机打开浏览器并打开条形码扫描器页面时,它会触发“输入条形码值” 文本输入,而不是打开相机进行扫描。当ı在我的手机中为android进行相同的处理时,它就可以正常工作。在官方文档中,他们说支持它的浏览器,但是似乎没有。。有没有人有任何想法,请帮助,以及下面的我的代码:
我的应用模块:
import { NgModule,CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { browserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import { FormsModule,ReactiveFormsModule } from '@angular/forms';
import { IonicModule,IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { HttpClientModule } from '@angular/common/http';
import { MatIconModule } from '@angular/material/icon';
import { browserAnimationsModule } from '@angular/platform-browser/animations';
import { CommonModule } from '@angular/common';
import { HTTP } from '@ionic-native/http/ngx';
import { NativeStorage } from '@ionic-native/native-storage/ngx';
import { IonicStorageModule } from '@ionic/storage';
import { HttpService } from './services/http.service';
import { Geolocation } from '@ionic-native/geolocation/ngx';
import {MatInputModule} from '@angular/material/input';
import {MatCardModule} from '@angular/material/card';
import {MatSelectModule} from '@angular/material/select';
import {MatDialogModule} from '@angular/material/dialog';
import { HttpClient } from '@angular/common/http';
import { TranslateModule,TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { PhotoViewer } from '@ionic-native/photo-viewer/ngx';
import { NgxMaskModule,IConfig } from 'ngx-mask'
import { Onesignal } from '@ionic-native/onesignal/ngx';
import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';
const maskConfig: Partial<IConfig> = {
validation: false,};
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http,"./assets/i18n/",".json");
}
@NgModule({
declarations: [AppComponent],entryComponents: [],schemas:[CUSTOM_ELEMENTS_SCHEMA],imports: [
browserModule,IonicModule.forRoot(),AppRoutingModule,HttpClientModule,NgxMaskModule.forRoot(maskConfig),MatIconModule,IonicStorageModule.forRoot(),FormsModule,CommonModule,browserAnimationsModule,MatInputModule,MatCardModule,MatSelectModule,MatDialogModule,ReactiveFormsModule,TranslateModule.forRoot({
loader: {
provide: TranslateLoader,useFactory: (HttpLoaderFactory),deps: [HttpClient]
}
})
],providers: [
StatusBar,SplashScreen,{ provide: RouteReuseStrategy,useClass: IonicRouteStrategy },HTTP,Geolocation,NativeStorage,HttpService,PhotoViewer,Onesignal,BarcodeScanner
],bootstrap: [AppComponent]
})
export class AppModule { }
我要扫描的组件:
import { Component,OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';
import { StorageService } from 'src/app/services/storage.service';
@Component({
selector: 'app-barcode-scanner',templateUrl: './barcode-scanner.page.html',styleUrls: ['./barcode-scanner.page.scss'],})
export class BarcodeScannerPage {
constructor(private barcodeScanner: BarcodeScanner,private storageService: StorageService,private router: Router) { }
ionViewDidEnter() {
this.barcodeScanner.scan().then(barcodeData => {
var str = barcodeData.text
this.storageService.getItem("LangID").then(res=>{
var str2 = str.concat(";LangID="+JSON.stringify(res))
this.router.navigateByUrl(str2)
})
}).catch(err => {
console.log('Error',err);
});
}
}
我的屏幕截图
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)