我有一个 Meteor (v 1.2.0.2) 角度移动应用程序,需要有一个指向外部网页的链接,但这些链接无法在 android 或 ios 上打开。经过研究,我从这个问题中发现我可以添加一个名为 inAppBrowser 的cordova插件
如何在 iOS Meteor 应用程序中获取在本机浏览器中打开的链接?
我从答案之一中使用它来添加 inAppBrowser 插件
流星添加cordova:cordova-plugin-inappbrowser@ https://github.com/apache/cordova-plugin-inappbrowser/tarball/bc9036d90a1f3f2220b5fc29b77cf2405e7fd781
之后,我的链接在我的 android 上有效,但在我的 ipad 上无效。
这是我的html
<a ng-click="adClick(pageAd.link, pageAd._id)">
<img ng-src="/images/ads/{{pageAd.src}}" alt="{{pageAd.alt}}" />
</a>
和我的控制器中的功能
$scope.adClick = function(url, adId)
{
$meteor.call("incrementAdCount", adId).then(
function(data){
window.open(url, "_system");
},
function(error) {
}
);
}
在 ipad 上,每次单击时我的广告计数方法都有效,但 window.open 似乎没有做任何事情。在android上一切正常。
我需要为流星中的 inAppBrowser 进行任何其他设置才能使 ios 链接正常工作吗?我觉得它应该很简单,但经过数小时的搜索,我几乎找不到任何关于流星的东西,所以也许我找错了地方。
我还尝试使用 angular $window.open,它也适用于 android 但不适用于 ios。
我决定研究cordova插件,因为在搜索meteor时我找不到什么帮助。在cordova inAppBrowser 插件自述文件中,我发现了这个:
“如果您希望您的应用程序中的所有页面加载都通过 InAppBrowser,您可以window.open
在初始化期间简单地挂钩。例如:”
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
window.open = cordova.InAppBrowser.open;
}
但是我在我的流星项目中使用cordova变量的任何地方,它都是未定义的。这甚至在 Meteor 中可用吗?如果我需要这样做,为什么不这样做就可以在 android 中工作?
我的主要问题是我还需要做什么才能在移动 ios 应用程序中打开链接?