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

Ionic Capacitor iOS端自定义URL Scheme重定向失败排查

iOS端InAppBrowser无法通过自定义Scheme跳转回Ionic/Capacitor应用的解决方案

1. 修正Info.plist中的URL Scheme配置

你的CFBundleURLSchemes配置存在错误,自定义Scheme仅需填写纯协议名,不需要包含://或路径后缀。修改后的正确配置如下:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>com.bidding.starter</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>com.bidding.starter</string> <!-- 仅保留这一行即可 -->
        </array>
    </dict>
</array>

多余的com.bidding.starter://oauth?和com.bidding.starter://oauth会导致iOS无法正确识别你的Scheme规则。

2. 拦截InAppBrowser的自定义Scheme跳转

iOS的WKWebView(InAppBrowser基于该组件实现)默认会阻止非HTTP(S)协议的跳转,必须通过代码监听页面加载事件,手动拦截并处理Scheme跳转逻辑:

代码示例(Ionic/TypeScript):

import { InAppBrowser, InAppBrowserEvent } from '@ionic-native/in-app-browser/ngx';
import { App } from '@capacitor/app';

// 打开SSO登录页面
const browser = this.inAppBrowser.create('https://你的SSO登录地址.com', '_blank', {
  location: 'yes',
  clearcache: 'yes',
  clearsessioncache: 'yes'
});

// 监听页面加载起始事件
browser.on('loadstart').subscribe((event: InAppBrowserEvent) => {
  const targetUrl = event.url;
  // 匹配自定义Scheme的跳转请求
  if (targetUrl.startsWith('com.bidding.starter://')) {
    // 关闭InAppBrowser窗口
    browser.close();
    // 调用Capacitor的App插件触发应用跳转
    App.openUrl({ url: targetUrl });
  }
});

3. 验证Capacitor基础配置

确保capacitor.config.ts中已正确配置应用ID(需与Scheme前缀一致):

import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.bidding.starter',
  appName: 'BiddingHub',
  // 其他配置项...
};

export default config;

4. 重置iOS项目环境

修改配置后需执行以下操作确保生效:

  • 关闭Xcode
  • 运行npx cap sync ios同步配置
  • 打开Xcode后执行清理操作(快捷键Cmd+Shift+K)
  • 重新编译运行项目

错误根源说明

Xcode抛出的Redirection to URL with a scheme that is not HTTP(S)错误,本质是WKWebView的安全限制导致;同时你配置的冗余Scheme规则,让iOS无法正确匹配跳转请求,两者共同导致了跳转失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 23:15:08