我正在使用html代码为android和ios构建一个离子应用程序。我试图从存储在服务器上的json文件调用链接的字段名称链接,但window.open()将无法识别这个,有人可以帮忙吗?
<a onClick="window.open({{item.link}}, '_blank', 'location=yes')">
尝试使用href,但他们只在浏览器中打开链接,不允许用户在测试时退出,他们必须完全退出应用才能返回。
任何帮助将不胜感激。它似乎只发生在ios上。
GOT IT SORTED
<a href="{{item.link}}" onclick="window.open(this.href,'_blank',location=yes); return false;">
答案 0 :(得分:0)
您应该href
使用target
:
<a href="{{item.link}}" target="_blank">
根据AngularJS docs,您应该在加载AngularJS之前阻止用户可以使用该链接,如下所示:
<a ng-href="{{item.link}}" target="_blank">
或者,如果您真的想使用onclick
,请添加“javascript:”并将链接用单引号括起来:
<a href="#" onclick="javascript:window.open('{{item.link}}', '_blank', 'location=yes')">
当在WebView中打开链接时,用户无法返回上一个视图。
This article对此有所了解:
幸运的是,有一个
cordova.inAppBrowser
插件将这个hack封装在一个易于添加的插件中。这是一个更简单的解决方案,不需要破解可以被更新覆盖的生成的cordova WebView包装器代码。该插件基本上为window.open()
提供了在外部浏览器中打开新窗口的功能。您可以使用以下选项添加此插件:
在您的Cordova项目中cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git
或 - 如果您通过从Visual Studio加载项配置页面添加Visual Studio的Cordova工具来使用它。
该插件基本上取代了WebView控件中的
window.open()
函数,因此导致设备浏览器的新实例打开 - 在iOS上就是Safari。
答案 1 :(得分:0)
我对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>
关注Controller
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/
希望这有帮助!
答案 2 :(得分:0)
GOT IT SORTED
<a href="{{item.link}}" onclick="window.open(this.href,'_blank',location=yes); return false;">
答案 3 :(得分:0)
对我来说
<a href="{{item.url}}" onclick="window.open(this.href,'_self');">
{{menu.title}}
</a>
完美的工作 'location = yes'产生错误as-
2 001637 error Uncaught ReferenceError: yes is not defined, http://localhost:8100/?ionicplatform=android, Line: 1
现在它运作良好。