【问题标题】:How to open links in Phonegap application without opening device browser?如何在不打开设备浏览器的情况下打开 Phonegap 应用程序中的链接?
【发布时间】:2016-06-11 13:49:33
【问题描述】:

我正在为我的 Web 应用程序实现一个简单的 Phonegap 包装器。基本上我只需要一个像浏览器一样显示从服务器获取的页面的应用程序。我已经像这样覆盖了Phonegap项目的index.html文件:

<!DOCTYPE html>
<html>

<head></head>

   <body onload="onBodyLoad()">

   <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
       <script type="text/javascript">
       function onBodyLoad()
       {
           document.addEventListener("deviceready", onDeviceReady, false);
           window.location.href = window.open("http://localhost:8000/", '_self ', 'location=yes');
       }

       function onDeviceReady()
       {
           // do your thing!
       }
        </script>
   </body>
</html>

这将打开我网站的主页并将其显示为应用程序的初始页面。它有效。问题是该主页上的所有链接都将在设备浏览器中打开。我想在同一个 Cordova webview 中打开它们。

【问题讨论】:

  • 这不是混合移动应用程序的目的。更好地制作移动网站而不是混合应用。
  • 这是一个要求,我需要这种包装器才能拥有移动应用程序而不是移动网站。

标签: cordova


【解决方案1】:

您可以使用inAppBrowser plugin。让我们阅读官方文档,你会得到你需要的。

【讨论】:

  • 我确实尝试过使用该插件。但它不断打开设备浏览器。无论如何,为什么不能在 Cordova webview 中打开任何其他内部网站页面 (localhost:8000/*)。主页打开得很好。
【解决方案2】:

您需要在config.xml 中将您的网站网址列入白名单

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-whitelist/index.html

【讨论】:

  • 谢谢,但这解决了另一个问题,我实际上也遇到了。白名单允许导航链接。这很好,我现在可以在设备浏览器中导航到链接目的地。我希望它只在同一个应用视图中打开。
【解决方案3】:

我用下面的代码得到了想要的结果:

function onBodyLoad() 
{
    document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady()
{
    window.open("http://localhost:8000/", '_blank','toolbar=no,location=no');
}

【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多