繁体   English   中英

移动设备上的 Web - 从 Chrome 自定义选项卡或 Safari ViewController 导航时,在完整的浏览器应用程序中打开 URL

[英]Web on mobile - Open URLs in full browser apps when navigating from Chrome Custom Tabs or Safari ViewController

我有一个 web 页面,该页面通常在各自的“选项卡系统”Chrome 自定义选项卡/SFSafariViewController 中从 Android/iOS 应用程序内部启动。

我的要求是让一些 url 重定向并在完整的浏览器应用程序中打开,而不是在选项卡/控制器中导航。

我尝试向这些 URL 之一添加href target="_blank" or use window.open()` 但至少在 Android 中会在现有选项卡内打开一个自定义选项卡。 到目前为止还没有机会在 iOS 上进行测试,但我暗暗怀疑它不会执行任何操作,因为 Safari 视图 Controller 不支持 windows。

任何关于如何强制这 2 个工具在完整应用程序中打开 url 的想法将不胜感激。

谢谢。

Twitter 和 whatsapp 在 CCT 和 SVC 中打开网页,但 FB Messenger 不会,因为它在其应用内浏览器 (IAB) 中打开,除非您更改手机设置。

但。 我发现这个 javascript 对我有用,iphone 上的 safari 和 android 上的 chrome。把它放在 header 末尾的索引页的开头,并参考同一个索引页。 当然,将您的网页更改为在此处以外打开到您自己的页面。

var standalone = window.navigator.standalone,
  userAgent = window.navigator.userAgent.toLowerCase(),
  safari = /safari/.test(userAgent),
  ios = /iphone|ipod|ipad/.test(userAgent);

var qq;

if (ios) {
  if (!standalone && safari) {
    // Safari
  } else if (!standalone && !safari) {
    // iOS webview
       s=location.toString().split('?');s=s[1];
       qq="https://www.yourwebpagetoopenoutsidewbhere.com/index.php?" + s;
       window.close(); // Close the empty view window
       window.open(qq,'_system', 'location=yes', replace);
  }
} else {
  if (userAgent.includes('wv')) {
     // Android webview
       s=location.toString().split('?');s=s[1];
       qq="https://www.yourwebpagetoopenoutsidewbhere.com/index.php?" + s;
       window.close(); // Close the empty view window
       var winloc = 'intent:' + qq + '#Intent;end';
       window.location = winloc;

  } else {
    // Chrome
  }
}

对于可能遇到此问题并感兴趣的人。

不幸的是,无法强制应用内浏览器在其完整版本中打开新选项卡。 就像我在问题 iOS 中提到的那样,由于SFSafariViewController的性质,它根本无法做到这一点,而在 Android 中它不起作用......由于我猜的原因,找不到具体的东西,我不会 go 推测原因.

我最终在我这边使用的解决方案是:让网站发送一个深层链接到应用程序 URL 如果它应该在外部打开,应用程序然后关闭应用程序浏览器并启动接收 URL 到完整的浏览器。

我暂时将此设置为答案。 如果有人提出更好的解决方案或立即解决问题,我很乐意更改它。

干杯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM