问题描述
我有一个应用程序,我们需要获取文件路径并打开该文件,但是当我在Asus Max Pro上进行测试时成功了,但是Redmi note 8 pro不能正常工作。
我如何将我的应用程序更新为cordova-android:9.0.0就是这样。
{
"private": true,"dependencies": {
"@ionic-native/camera": "^5.29.0","@ionic-native/chooser": "^5.29.0","@ionic-native/document-viewer": "^5.29.0","@ionic-native/file": "^5.29.0","@ionic-native/file-chooser": "^5.29.0","@ionic-native/file-opener": "^5.29.0","@ionic-native/file-path": "^5.29.0","@ionic-native/file-transfer": "^5.29.0","@ionic-native/geolocation": "^5.29.0
"@ionic-native/open-native-settings": "^5.29.0","@ionic-native/photo-viewer": "^5.29.0
"@ionic-native/streaming-media": "^5.29.0","@ionic-native/video-player": "^5.29.0","@ionic/angular": "^5.4.0","cordova-plugin-camera": "^5.0.0","cordova-plugin-document-viewer": "^1.0.0","cordova-plugin-file": "^6.0.2","cordova-plugin-file-opener2": "^3.0.5","cordova-plugin-file-transfer": "^1.7.1","cordova-plugin-filechooser": "^1.2.0","cordova-plugin-filepath": "^1.5.8","cordova-plugin-ionic-webview": "^5.0.0","resolve-url": "^0.2.1",
}, “ devDependencies”:{ “ @ angular / cli”:“ ^ 10.1.7”, “ com-sarriaroman-photoviewer”:“ ^ 1.2.5”, “ cordova-android”:“ ^ 9.0.0”, “ cordova-plugin-androidx”:“ ^ 3.0.0”, “ cordova-plugin-androidx-adapter”:“ ^ 1.1.1”, “ cordova-plugin-chooser”:“ ^ 1.3.2”
},"cordova": {
"platforms": [
"android"
],"plugins": {
"cordova-plugin-ionic-webview": {
"ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
},"cordova-plugin-file-transfer": {},"cordova-plugin-file": {},"cordova-plugin-filechooser": {},"cordova-plugin-filepath": {},"cordova-plugin-file-opener2": {
"ANDROID_SUPPORT_V4_VERSION": "27.+"
},"cordova-plugin-camera": {
"ANDROID_SUPPORT_V4_VERSION": "27.+"
},"cordova-plugin-streaming-media": {},"cordova.plugins.diagnostic": {
"ANDROID_SUPPORT_VERSION": "27.+","ANDROIDX_VERSION": "1.+"
},"cordova-plugin-document-viewer": {},"com-badrit-base64": {},"cordova-plugin-app-version": {},"onesignal-cordova-plugin": {},"cordova-plugin-androidx": {},"cordova-plugin-androidx-adapter": {},"com-sarriaroman-photoviewer": {},"cordova-plugin-chooser": {}
}
}
}
TS
chooseFile(): void {
this.platform.ready().then(async () => {
let typeFileAllowedShow = this.typeFileAllowedShow();
this.chooser.getFile(typeFileAllowedShow)
.then(async (data) => {
if (data) {
let filePath = await this.getFilePath(data);
this.showFile(filePath);
}
}).catch(e => console.log(e));
})
}
async getFilePath(data) {
return (this.userService.so == 'android') ?
await this.filePath.resolveNativePath(data.uri) : data.uri;
}
typeFileAllowedShow() {
let typeFile;
typeFile = 'video/*,'
+ 'application/msword,'
+ 'application/pdf,'
+ 'application/vnd.oasis.opendocument.text,'
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
return typeFile;
}
showFile(file): void {
this.files.push(file)
}
async startVideo(_path) {
let options: StreamingVideoOptions = {
successCallback: () => { console.log("Success") },errorCallback: (error) => {
console.log("Video Start Fail")
console.log(error)
},orientation: 'portrait',shouldAutoClose: true,controls: true
}
this.streamingMedia.playVideo(_path,options);
}
HTML
...
<ion-col size="6" *ngFor="let file of files; let i = index">
<div class="anexo" class="img">
<img src="../../../assets/images/video.png" (click)="startVideo(file)">
</div>
</ion-col>
...
<?xml version='1.0' encoding='utf-8'?>
<widget id="x" version="1.0.9" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<content src="index.html" />
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<preference name="ScrollEnabled" value="false" />
<preference name="BackupWebStorage" value="none" />
<preference name="SplashMaintainAspecRatio" value="true" />
<preference name="FadeSplashScreenDuration" value="300" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="SplashScreen" value="screen" />
<preference name="KeyboardResize" value="true" />
<preference name="SplashScreenDelay" value="3000" />
<preference name="ShowSplashScreen" value="true" />
<preference name="KeyboardResizeMode" value="native" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
<platform name="android">
<resource-file src="google-services.json" target="app/google-services.json" />
<config-file parent="/*" target="config.xml">
<preference name="GradlePluginGoogleServicesEnabled" value="true" />
<preference name="GradlePluginGoogleServicesversion" value="4.2.0" />
</config-file>
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
<preference name="android-minSdkVersion" value="22" />
<preference name="android-targetSdkVersion" value="29" />
<preference name="AndroidXEnabled" value="false" />
<preference name="GradlePluginKotlinEnabled" value="true" />
<preference name="GradlePluginKotlinCodeStyle" value="official" />
<preference name="GradlePluginKotlinVersion" value="1.3.50" />
<access origin="*" />
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" />
</edit-config>
<allow-navigation href="*" />
<allow-intent href="market:*" />
</platform>
<plugin name="cordova-plugin-device" spec="^2.0.2" />
<plugin name="cordova-plugin-inappbrowser" spec="^3.0.0" />
<plugin name="cordova-plugin-splashscreen" spec="^5.0.2" />
<plugin name="cordova-plugin-whitelist" spec="^1.3.2" />
<plugin name="cordova-plugin-ionic-webview" spec="2.0.0-beta.1" />
<plugin name="cordova-plugin-statusbar" spec="^2.4.2" />
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.1.2" />
</plugin>
</widget>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)