Window.open() 打开通过 json 文件传递​​的 url?

Window.open() to open a url passed through a json file?

我正在为 android 和 ios 构建离子应用程序,使用 html 代码。我正在尝试从存储在服务器上的字段名称为 link 的 json 文件中调用 link,但是 window.open() 无法识别这个,有人可以吗请帮忙?

<a onClick="window.open({{item.link}}, '_blank', 'location=yes')">

尝试使用 href,但他们只在浏览器中打开 link,在测试时不允许用户退出,他们必须完全退出应用程序才能返回。

如有任何帮助,我们将不胜感激。它似乎只发生在 ios 上。

已排序

<a href="{{item.link}}" onclick="window.open(this.href,'_blank',location=yes); return false;">

你应该使用 hreftarget:

 <a href="{{item.link}}" target="_blank">

根据 AngularJS docs,您实际上应该防止 link 在加载 AngularJS 之前对用户可用,如下所示:

 <a ng-href="{{item.link}}" target="_blank">

或者,如果您真的想使用 onclick,则添加“javascript:”并将 link 括在单引号中:

 <a href="#" onclick="javascript:window.open('{{item.link}}', '_blank', 'location=yes')">

使用插件强制“目标”links 在外部浏览器中打开

当 link 在 WebView 中打开时,用户无法返回到之前的视图。

This article 阐明了这一点:

Luckily there's a cordova.inAppBrowser plug-in that encapsulates this hack in an easy to add plug-in. This is a much simpler solution that doesn't require hacking the generated cordova WebView wrapper code that can be overwritten by updates. The plug-in basically provides the ability for window.open() to open a new window in the external browser.

You can add this plug in with:

cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git

in your Cordova project or – if you're using Visual Studio's Cordova Tools by adding it from the Visual Studio add-in Configuration page.

The plugin basically replaces the window.open() function inside of the WebView control and so causes a new instance of the device browser to open – on iOS that'd be Safari.

我不熟悉 IONIC,但我很确定 Ionic 使用 angularjs 所以 ....

以下适合我!

//关注HTML

<div>       
    <div ng-app="sampleApp" ng-controller="MainCtrl">
         <ion-content style="display:block">
         <a href="" ng-click="openUrl(item.link)">Open in new</a>

        </ion-content>
    </div>     
</div>

和以下控制器

var SampleApp;
(function (SampleApp) {

    var app = angular.module('sampleApp', ['ionic']);    
    app.controller('MainCtrl', function ($scope) {
        $scope.item = {
           link: 'http://example.com'
        }
        $scope.openUrl = function(url){
                  window.open(url, '_blank', 'location=yes')
        }
    });

})(SampleApp || (SampleApp = {}));

JS-Fiddle: http://jsfiddle.net/daveamit/r2c8dfhx/1/

希望对您有所帮助!

已排序

<a href="{{item.link}}" onclick="window.open(this.href,'_blank',location=yes); return false;">

对我来说

<a href="{{item.url}}" onclick="window.open(this.href,'_self');">
   {{menu.title}}
</a>

工作完美。
'location=yes' 产生错误,因为-

2     001637   error    Uncaught ReferenceError: yes is not defined, http://localhost:8100/?ionicplatform=android, Line: 1

现在运行良好。