关于ionic3打包的APP弹出Detected problems with API compatibility的解决办法以及http请求无效的处理。

一、弹出原因

        因为真机升级到Android9之后,在最新安卓版本P等都会出现该弹窗提示。谷歌官方解释:Android P 后谷歌限制了开发者调用非官方公开API 方法或接口。并且Android P之后,不允许http请求,必须使用https,所以需要进行以下处理。


二、解决办法

1、在..\ionic3\appProject\config.xml添加

     

<preference name="android-targetSdkVersion" value="28" />

     后,执行

ionic cordova platform remove android
ionic cordova platform add android

2、解决27+的问题(如果有)

在..\ionic3\appProject\platforms\android\app\build.gradle 最后面添加一下内容

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-v4:26.0.0'
    }
}

// 解决support-annotations版本冲突
configurations.all {
    resolutionStrategy.force 'com.android.support:support-annotations:27.1.1'

}

3、解决google地址下载不了的问题

将 android/build.gradle,android/app/build.gradle,android/CordovaLib/build.gradle 中的所有 repositories改为

repositories {
    jcenter()
       maven {

           // url "https://maven.google.com"
           url "http://maven.aliyun.com/nexus/content/groups/public/"
    }
}

4、由于android9不允许http请求,需要使用https,但是原接口无法提供https,则需要进行以下操作
在..\ionic3\appProject\platforms\android\app\src\main\res\xml下创建文件network_security_config.xml(名字随意,与下面引用对应就可以),内容为

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>


然后在..\ionic3\appProject\platforms\android\app\src\main\AndroidManifest.xml中增加如下配置

<application
    android:networkSecurityConfig="@xml/network_security_config"
    *
    *
    *
/application>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Ionic-Angular应用中,可以使用Cordova插件来请求设备权限。在Android平台上,可以使用Cordova-plugin-android-permissions插件来请求权限。 首先,使用以下命令安装插件: ``` ionic cordova plugin add cordova-plugin-android-permissions npm install @ionic-native/android-permissions ``` 接下来,在您的组件中导入AndroidPermissions模块,并将其注入到构造函数中: ``` import { AndroidPermissions } from '@ionic-native/android-permissions/ngx'; constructor(private androidPermissions: AndroidPermissions) { } ``` 然后,您可以使用以下代码请求设备权限: ``` this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.CAMERA).then( result => console.log('Has permission?',result.hasPermission), err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.CAMERA) ); ``` 上面的代码检查是否已经授予相机权限,如果没有,会弹出一个权限请求框。 请注意,您需要在AndroidManifest.xml文件中添加所需的权限。您可以使用config.xml文件中的<config-file>标记在Ionic-Angular应用程序中添加权限。例如,要添加相机权限,请在config.xml文件中添加以下内容: ``` <platform name="android"> <config-file parent="/*" target="AndroidManifest.xml"> <uses-permission android:name="android.permission.CAMERA" /> </config-file> </platform> ``` 这将在应用程序安装时在AndroidManifest.xml文件中添加相机权限。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值