ReactNative WebView 加载网址出错:net::ERR_CLEARTEXT_NOT_PERMITTED

黎苑博
2023-12-01

ReactNative WebView 加载网址出错:net::ERR_CLEARTEXT_NOT_PERMITTED

在开发时显示是正常的,但在 release 中的 apk 中却出错。

原因

是因为访问的是 http 而不是 https 网址。默认情况下 webView 是不允许直接访问非 https 的网址的

解决办法

android/app/src/main/AndroidManifest.xml 中 的 application 字段中添加

android:usesCleartextTraffic="true"

添加后如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.demoapk">

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

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/appicon"
      android:roundIcon="@mipmap/appicon_round"
      android:allowBackup="false"
      android:usesCleartextTraffic="true"
      android:theme="@style/AppTheme">
      <activity
        android:screenOrientation="landscape"
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
        android:launchMode="singleTask"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
    </application>
</manifest>
 类似资料: