Ionic V4应用添加Kapsel插件后出现net::ERR_CONNECTION_REFUSED错误求助
我之前做Ionic项目集成Kapsel插件时也碰到过类似的连接拒绝问题,结合你给出的插件列表和报错信息,给你几个实用的排查和解决方向:
调整Cordova WebView的路径配置
你用的cordova-plugin-ionic-webview4.1.1版本,默认会把本地资源托管在http://localhost:8080,但Kapsel的iab.html可能对路径有特定要求。你可以修改config.xml添加以下配置来对齐路径:<preference name="Hostname" value="localhost" /> <preference name="Port" value="8080" /> <!-- 临时开启文件模式兼容,测试后建议关闭 --> <preference name="AndroidInsecureFileModeEnabled" value="true" />改完后执行
ionic cordova build android重新打包。检查Kapsel Logon的服务器配置
这个报错很大概率是Logon插件没拿到正确的SMP服务器地址,默认去连本地的localhost了。你要确保初始化Logon时传入了正确的SMP端点信息,比如:sap.Logon.init( () => console.log("Logon初始化成功"), (err) => console.error("Logon失败: ", err), { serverHost: "你的SMP服务器地址", serverPort: "你的SMP端口", appID: "你的应用ID", https: false // 根据实际SMP配置调整 } );也可以直接在
config.xml的Logon插件配置里硬编码这些参数:<plugin name="kapsel-plugin-logon" spec="4.2.8"> <variable name="SERVER_HOST" value="你的SMP服务器地址" /> <variable name="SERVER_PORT" value="你的SMP端口" /> <variable name="APP_ID" value="你的应用ID" /> </plugin>确保Whitelist插件的访问规则正确
虽然装了cordova-plugin-whitelist,但得明确允许相关URL的访问。在config.xml里添加:<allow-navigation href="http://localhost/*" /> <allow-navigation href="你的SMP服务器地址/*" /> <!-- 测试阶段可以临时允许所有导航,上线后一定要收紧 --> <allow-navigation href="*" />同时检查
index.html里的Content-Security-Policy元标签,要允许加载localhost和SMP的资源:<meta http-equiv="Content-Security-Policy" content="default-src 'self' http://localhost:8080 你的SMP服务器地址 data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *;">清理构建缓存重新部署
有时候旧的缓存会导致配置不生效,执行以下命令彻底清理后重新构建:ionic cordova platform rm android ionic cordova platform add android ionic cordova build android --prod --release验证插件版本兼容性
你用的Kapsel 4.2.8版本,要确认它和Ionic V4、当前Cordova版本是否完全兼容。可以尝试升级到SAP官方推荐的兼容版本:ionic cordova plugin update kapsel-plugin-logon kapsel-plugin-authproxy kapsel-plugin-ui5
内容的提问来源于stack exchange,提问作者J.Gowri Sankar Reddy

