You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android虚拟设备调用HTTP接口被拦截问题求助(Capacitor/Angular/.NET6)

解决Capacitor(Angular)在Android API29 AVD中调用HTTP API被拦截的问题

核心问题和你推测一致:Capacitor在Android平台默认以HTTPS方式加载应用,而WebView的混合内容安全策略会阻止从HTTPS页面发起的HTTP请求——这和Android系统的cleartextTraffic配置不是同一层面的限制,后者是允许应用本身发起HTTP请求,但WebView的浏览器安全规则会额外拦截这类跨协议请求。

以下是两种可行的解决方案:

方案1:让Capacitor开发阶段以HTTP提供服务

这是最直接的解决方式,彻底规避混合内容限制:

  • 在项目根目录的capacitor.config.ts中添加server配置:
    export default defineConfig({
      appId: "com.your.app.id",
      appName: "YourAppName",
      webDir: "dist/your-app",
      // 新增以下配置
      server: {
        androidScheme: "http"
      }
    });
    
  • 同步配置到Android项目:
    npx cap sync android
    
  • 重启Android虚拟设备,重新运行应用即可。此时WebView以HTTP加载页面,就能正常发起HTTP请求到本地.NET 6 API。

方案2:保留HTTPS服务,允许WebView加载混合内容

如果需要在HTTPS环境下测试功能,可配置WebView允许混合内容(仅建议开发阶段使用):

Java版本(MainActivity.java)

import android.webkit.WebSettings;
import com.getcapacitor.Bridge;
import com.getcapacitor.BridgeActivity;

public class MainActivity extends BridgeActivity {
  @Override
  public void onBridgeCreated(Bridge bridge) {
    super.onBridgeCreated(bridge);
    // 允许WebView加载混合内容
    WebSettings webSettings = bridge.getWebView().getSettings();
    webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
  }
}

Kotlin版本(MainActivity.kt)

import android.webkit.WebSettings
import com.getcapacitor.Bridge
import com.getcapacitor.BridgeActivity

class MainActivity : BridgeActivity() {
  override fun onBridgeCreated(bridge: Bridge) {
    super.onBridgeCreated(bridge)
    val webSettings = bridge.webView.settings
    webSettings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
  }
}
  • 重新编译运行应用,HTTPS页面即可发起HTTP请求。

额外验证(确保Android系统层面配置生效)

虽然核心问题不在此,但仍需确认你的网络安全配置正确:

  • 确保network_security_config.xml放在android/app/src/main/res/xml/目录下
  • 确认AndroidManifest.xml的<application>标签正确引用配置:
    <application
      android:networkSecurityConfig="@xml/network_security_config"
      android:usesCleartextTraffic="true"
      <!-- 其他原有属性 -->
    >
    

注意:生产环境务必切换回HTTPS服务,禁止使用混合内容允许配置,避免安全风险。

内容的提问来源于stack exchange,提问作者Mad Eddie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 16:10:26