离子7电容5上网不行

问题描述 投票:0回答:2

Ionic 7 无法访问互联网。但

status.connected
(@capacitor/network)说的是真的。我认为 Android 拒绝连接。

package.json部分:

{
  "dependencies": {
    "@angular/common": "^16.0.0",
    "@capacitor/android": "5.0.5",
    "@capacitor/network": "^5.0.6",
    "@ionic/angular": "^7.1.0"
  }
}

AndroidManifest.xml部分:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

  <application
    android:usesCleartextTraffic="true">
  </application>
</manifest>

main.ts部分:

import {ConnectionStatus, Network} from '@capacitor/network';

export const networkStatus: ConnectionStatus = {
  connected: false,
  connectionType: 'none'
};

/**
 * ERROR: event does not fire
 */
Network.addListener('networkStatusChange', status => {
  networkStatus.connected = status.connected;
  networkStatus.connectionType = status.connectionType;
});

app.component.ts部分:

import {Network} from '@capacitor/network';
import {networkStatus} from '../main';

export class AppComponent {
    async refreshNetworkStatus() {
        const status = await Network.getStatus();
        this.netStat.connected = status.connected;
        this.netStat.connectionType = status.connectionType;
    }
}

第一个问题是

Network.addListener('networkStatusChange')
(main.ts)不触发。在 app.component.ts 中,函数
refreshNetworkStatus()
可以工作并显示 status=true 和 type=wifi。所以,看起来不错。但我无法访问网络上的任何内容。

为什么我无法访问互联网?

安装应用程序时,Android 不会询问是否可以访问互联网。我认为 Android 应该询问,因为我在 AndroidManifest.xml 中说了我想要的。

Android为什么不请求访问互联网的权限?

测试设备

  • 摩托罗拉 Moto G22 - Android 12
  • Fairphone 4 5G - Android 13
  • 谷歌 Pixel 5 - Android 11
  • 华硕 ZenFone 3 - Android 8
ionic-framework android-permissions capacitor ionic7
2个回答
0
投票

我的错误在其他地方。通过以上配置,Android 下就可以上网了。


0
投票

为什么不把监听器放在app.component中?

© www.soinside.com 2019 - 2024. All rights reserved.