【问题标题】:What controls whether PhoneGap opens an external browser / Safari?什么控制 PhoneGap 是否打开外部浏览器/Safari?
【发布时间】:2011-11-17 17:58:31
【问题描述】:

PhoneGap 有时会在 Safari 中打开网页,有时会在其 UIWebView 中打开,这是什么控制的?

【问题讨论】:

    标签: cordova


    【解决方案1】:

    来自Does phoneGap support normal web?

    https://github.com/callback/callback-ios/blob/master/PhoneGapLib/Classes/PhoneGapDelegate.m#L669 透露:

    1. 如果 URL 有方案 gap:// 则不会打开 Safari
    2. 如果 URL 有方案 file:// 则不会打开 Safari
    3. 如果设置了 OpenAllWhitelistURLsInWebView 策略,它不会打开 Safari。
    4. 如果 navigationType == UIWebViewNavigationTypeOther && mainDocument != nil 则确实会打开 Safari。

    详述4:

    • ~NavTypeOther 表示导航不是来自:链接单击、后退/前进按钮、重新加载或表单重新/提交。 (又名window.location.href assignment,或window.open(...)
    • mainDocument != nil 表示链接不是来自 iFrame?和/或没有目标?

    所以基本上,我认为只有在 UIWebView 中打开链接点击(除非它们是 gap:// 或 file:// 链接,或者设置了该策略。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多