如何在本机网络浏览器中打开链接(常见建议无效)?
How to open links in a native web browser (common suggestion did not work)?
PhoneGap (Adobe® PhoneGap™ Build) 打开外部 link 需要很长时间,并且不会在本机 phone 浏览器中打开。
嗯,这是我的问题。首先,如果我在我的应用程序中单击外部 link,则需要很长时间才能显示结果。因此,例如,如果我单击 link 几秒钟后什么也没有发生,那么该网站将显示在应用程序本身中。如果花费这么长时间,每个普通用户都会认为有问题。看起来完整的网站在显示之前首先加载,这对我的应用程序很好但对外部 links.
本机浏览器问题
但是,无论如何,我不喜欢在应用程序视图中打开外部网站 link。我喜欢在 phone.
的本机浏览器中打开它们
对于这个问题已经存在几个问题和建议,其中许多太旧以至于可能已经过时,其中许多甚至堆栈溢出。但要总结答案。建议不要直接打开链接,而是通过点击事件打开链接,防止默认设置,而不是打开一个新的 window with javascript window.open('http://www.myurl.nl', '_system');
还有建议设置标签。
对于 _system,您将需要 inAppBrowser 插件 config.xml.
中的 Adobe Build 上 <gap:plugin name="org.li8.inappbrowser" version="0.1" />
可用的插件
因此,我的 link 可以在任何桌面和移动浏览器上的新 Window(不是选项卡)中打开。但是当我将它构建为应用程序并在 Android 上启动它时,它总是在应用程序而不是本机浏览器中打开 links。无论我尝试过什么设置组合。我看不出每次尝试有什么不同。 (目前正在测试 Android,但接下来会进行 Iphone 测试。
有人可以给我一个关于这个问题的最新答案吗?
在您的 config.xml 中,添加:
<gap:plugin name="org.apache.cordova.inappbrowser" />
然后对于链接,使用:
<a target="_blank" href="https://www.example.com">Example page</a>
至少这对我有用。
我最近使用 PhoneGap Build 开发了一个移动应用程序,因此您可以确定以下解决方案是最新的。
无论你想使用网页视图还是外部浏览器,都需要将inAppBrowser
插件添加到config.xml
<gap:plugin name="org.apache.cordova.inappbrowser">
现在,如果您想打开本机(外部)网络浏览器,请使用此命令:
window.open('http://www.google.com', '_system');
如果你想打开嵌入式浏览器使用这个:
window.open('http://www.google.com', '_blank', 'location=yes');
要管理用户操作和嵌入式浏览器出现之间的延迟,您可以使用 loadstop
事件在浏览器完全加载后显示它:
Mask('show'); /* a function to show some loading animation*/
var inAppBrowser = window.open(link, '_blank','hidden=yes');
inAppBrowser.addEventListener('loadstop', function(event) {
//show after complete load
inAppBrowser.show();
Mask('hide'); /* hide the loading mask*/
});
PhoneGap (Adobe® PhoneGap™ Build) 打开外部 link 需要很长时间,并且不会在本机 phone 浏览器中打开。
嗯,这是我的问题。首先,如果我在我的应用程序中单击外部 link,则需要很长时间才能显示结果。因此,例如,如果我单击 link 几秒钟后什么也没有发生,那么该网站将显示在应用程序本身中。如果花费这么长时间,每个普通用户都会认为有问题。看起来完整的网站在显示之前首先加载,这对我的应用程序很好但对外部 links.
本机浏览器问题
但是,无论如何,我不喜欢在应用程序视图中打开外部网站 link。我喜欢在 phone.
的本机浏览器中打开它们对于这个问题已经存在几个问题和建议,其中许多太旧以至于可能已经过时,其中许多甚至堆栈溢出。但要总结答案。建议不要直接打开链接,而是通过点击事件打开链接,防止默认设置,而不是打开一个新的 window with javascript window.open('http://www.myurl.nl', '_system');
还有建议设置标签。 对于 _system,您将需要 inAppBrowser 插件 config.xml.
中的 Adobe Build 上<gap:plugin name="org.li8.inappbrowser" version="0.1" />
可用的插件
因此,我的 link 可以在任何桌面和移动浏览器上的新 Window(不是选项卡)中打开。但是当我将它构建为应用程序并在 Android 上启动它时,它总是在应用程序而不是本机浏览器中打开 links。无论我尝试过什么设置组合。我看不出每次尝试有什么不同。 (目前正在测试 Android,但接下来会进行 Iphone 测试。
有人可以给我一个关于这个问题的最新答案吗?
在您的 config.xml 中,添加:
<gap:plugin name="org.apache.cordova.inappbrowser" />
然后对于链接,使用:
<a target="_blank" href="https://www.example.com">Example page</a>
至少这对我有用。
我最近使用 PhoneGap Build 开发了一个移动应用程序,因此您可以确定以下解决方案是最新的。
无论你想使用网页视图还是外部浏览器,都需要将inAppBrowser
插件添加到config.xml
<gap:plugin name="org.apache.cordova.inappbrowser">
现在,如果您想打开本机(外部)网络浏览器,请使用此命令:
window.open('http://www.google.com', '_system');
如果你想打开嵌入式浏览器使用这个:
window.open('http://www.google.com', '_blank', 'location=yes');
要管理用户操作和嵌入式浏览器出现之间的延迟,您可以使用 loadstop
事件在浏览器完全加载后显示它:
Mask('show'); /* a function to show some loading animation*/
var inAppBrowser = window.open(link, '_blank','hidden=yes');
inAppBrowser.addEventListener('loadstop', function(event) {
//show after complete load
inAppBrowser.show();
Mask('hide'); /* hide the loading mask*/
});