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为什么不请求访问互联网的权限?
测试设备
我的错误在其他地方。通过以上配置,Android 下就可以上网了。
为什么不把监听器放在app.component中?