有时,PhoneGap会在Android浏览器中打开网页,有时会在其UIWebView中打开它们。 Android的版本因行为而异。例如,在ICS中,window.open()在Android浏览器中打开链接,但2.3模拟器在WebView中打开此类链接。
是什么控制是在Android浏览器中还是在WebView中打开链接?
答案 0 :(得分:1)
到目前为止我发现了:
触发shouldOverrideUrlLoading
方法的内容将在以下情况下启动外部浏览器:
sms:
,tel:
,geo:
,mailto:
)但是,shouldOverrideUrlLoading
方法并不总是被触发 - 在Android 2.2和之前(可能是2.3?)Javascript技术上触发页面加载(例如window.open()
或document.location.href =
)不要激活方法,因此无论如何加载WebView。
用户物理点击的链接似乎总是触发该方法。使用JS事件机制触发链接上的点击事件也可能有效,我还没有尝试过。