You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ionic Cordova iOS应用如何实现在Microsoft Edge浏览器中打开链接?

解决Ionic Cordova iOS应用跳转至Microsoft Edge浏览器的问题

我完全理解你的困扰——想让Ionic Cordova开发的iOS应用里的链接直接跳转到Microsoft Edge,而非InAppBrowser或系统默认浏览器,试了多种方案却没效果。下面我一步步帮你排查和解决:

1. 确认Info.plist的URL Scheme配置是否正确

iOS 9及以上版本要求,调用外部应用的URL Scheme前,必须在Info.plist里声明允许查询的Scheme,否则系统会直接阻止调用。你需要补充以下配置:

打开项目的platforms/ios/[你的应用名]/Info.plist,添加这段XML代码:

<key>LSApplicationQueriesSchemes</key>
<array>
  <!-- 声明允许查询Microsoft Edge的Scheme -->
  <string>microsoft-edge</string>
  <string>microsoft-edge-https</string>
</array>

修改后记得重新构建iOS项目,确保配置生效。

2. 修正Edge Scheme的调用格式

你当前的代码window.open('microsoft-edge:'+ 'https://google.com' ,'_blank')格式有误,Microsoft Edge的正确调用需要使用microsoft-edge://open?url=前缀,并且要对目标URL进行编码(避免特殊字符导致跳转失败)。

替换成以下代码:

// 对目标URL进行URI编码,避免特殊字符干扰
const targetUrl = encodeURIComponent('https://google.com');
// 构造符合Edge要求的跳转链接
const edgeDeepLink = `microsoft-edge://open?url=${targetUrl}`;

// 用_system强制调用系统外部应用打开,而非InAppBrowser
window.open(edgeDeepLink, '_system');

3. 处理Edge未安装的异常情况

如果用户设备上没有安装Microsoft Edge,上述调用会失败,你可以添加检测逻辑,给用户友好提示:

// 先检查设备是否安装了Edge
if (window.cordova && window.cordova.InAppBrowser) {
  window.cordova.InAppBrowser.canOpenURL('microsoft-edge://', (isInstalled) => {
    if (isInstalled) {
      const targetUrl = encodeURIComponent('https://google.com');
      const edgeDeepLink = `microsoft-edge://open?url=${targetUrl}`;
      window.open(edgeDeepLink, '_system');
    } else {
      // Edge未安装时的 fallback 处理
      alert('请先安装Microsoft Edge浏览器');
      // 或者直接跳转至系统默认浏览器
      window.open('https://google.com', '_system');
    }
  });
} else {
  // 未安装InAppBrowser插件时,直接尝试跳转
  const targetUrl = encodeURIComponent('https://google.com');
  const edgeDeepLink = `microsoft-edge://open?url=${targetUrl}`;
  window.open(edgeDeepLink, '_system');
}

如果你的项目还没安装cordova-plugin-inappbrowser,先执行以下命令安装:

cordova plugin add cordova-plugin-inappbrowser

4. 验证效果

完成以上步骤后,重新构建iOS项目:

ionic cordova build ios

然后在真机上测试(模拟器通常没有安装Edge),点击链接应该就能直接跳转到Microsoft Edge浏览器打开目标URL了。

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

火山引擎 最新活动