4

我需要做的就是从 App Link 打开一个外部网页链接到 iPad 的浏览器(Safari、Chrome 等)。

PhoneGap 3.1 表示可以通过一个名为 InAppBrowser 的插件来完成。好的,我安装了它并在 config.xml 中添加了以下几行

  <plugin name="InAppBrowser" value="CDVInAppBrowser" />
    <feature name="InAppBrowser">
        <param name="ios-package" value="CDVInAppBrowser" />
    </feature>
    <access origin="*"/>

然后我在我的页面中添加了一个链接,该链接需要打开网页:-

<a class="linkexternal" href="#">asdf</a>

使用以下 JS

    <script type="text/javascript">
        $(document).on('click', ".linkexternal", function (e) {
            e.preventDefault();
            //window.open('http://apache.org', '_blank', 'location=no');
                       window.open('http://apache.org', '_system', 'location=yes');

        });
    </script>

它确实打开了页面,但只是在没有控件的情况下在整个屏幕上打开。在旧版本的 PhoneGap 中,它在最后向我显示“完成”,因此当我按下完成按钮时,它曾经将我带回应用程序。但在这里,它将整个页面显示为全屏,返回应用程序的唯一方法是关闭应用程序。

我只需要它向我显示“完成”按钮,或者只是在外部浏览器中打开链接。

附加信息

我尝试打开这三个不同的链接作为测试;使用“_system”、“_blank”和“_self”

    <a href="#" onclick="var ref = window.open('http://google.com', '_system');">Google (System Browser)</a><br /><br />
    <a href="#" onclick="var ref = window.open('http://google.com', '_blank');">Google (InAppBrowser)</a><br /><br />
    <a href="#" onclick="var ref = window.open('http://google.com', '_self');">Google (Webview)</a>

当我用“_system”、“_blank”和“_self”测试这三个链接时,只有“_self”一个作为应用程序的全屏打开,其余的给我以下错误:-

_system链接给出了这个错误: -

2013-11-12 11:44:58.878 XYZ[2063:60b] Failed to load webpage with error: The operation couldn’t be completed. (NSURLErrorDomain error -999.)

_blank链接给出了这个错误: -

2013-11-12 11:46:13.997 XYZ[2063:60b] CDVWebViewDelegate: Navigation started when state=1
2013-11-12 11:46:13.997 XYZ[2063:60b] Failed to load webpage with error: CDVWebViewDelegate: Navigation started when state=1
2013-11-12 11:46:13.999 XYZ[2063:60b] Resetting plugins due to page load.
2013-11-12 11:46:14.009 XYZ[2063:60b] Failed to load webpage with error: The operation couldn’t be completed. (NSURLErrorDomain error -999.)
4

2 回答 2

-1

请试试;

var urlToOpen = 'http://www.google.com';
navigator.app.loadUrl(urlToOpen, { openExternal: true });
于 2014-02-27T11:37:05.153 回答
-1

我认为问题是href="#"。在标签中使用这个 onClick 不会触发,我认为 NSURLErrorDomain 错误 -999 意味着浏览器无法解析“#”

于 2014-08-02T19:01:07.767 回答