如何使用javascript通过UWP应用在系统浏览器中打开链接?

时间:2019-03-08 21:10:10

标签: javascript cordova uwp

我已经开发了一个网络应用程序。我正在使用Cordova为Android / iOS / OSX / Windows创建应用程序包装,当我测试Windows应用程序时,遇到了问题。

该应用程序与我的应用程序域外的许多链接进行交互,既访问第三方用户内容,又使用OAuth通过第三方服务为用户登录。从我的应用的后端服务器生成OAuth重定向,然后通过javascript手动将用户重定向到它们。

let response = await this.$apollo.mutate({
  mutation: initializeConnection,
  variables: variables
});

window.location = response.data.initializeConnection.redirectUrl;

在Android / iOS / OSX中,这是在系统浏览器中打开OAuth重定向的功能。 Windows应用程序却没有。我在Cordova config.xml文件中将应用程序的URL设置为<allow-navigation>,在为Windows构建时将其插入到appmanifest中(它们显示为Content URI)。在Windows中发生上述重定向时,将显示错误消息“该应用程序无法使用脚本来加载<url> URL,因为该URL启动了另一个应用程序。”

我不想打开其他应用,我只想在系统浏览器中打开它们。作为比较,我表现为<a href="<whatever>" target="_blank">的用户内容可以在系统浏览器中打开。我尝试使用window.open()而不是window.location来打开重定向,并且如果在内容URI中添加“ https:// *”也可以,但是会在另一个应用程序窗口中打开重定向,而不是系统浏览器。

我需要怎么做才能在系统浏览器中打开这些重定向?

1 个答案:

答案 0 :(得分:0)

UWP中的

可以执行此操作以使用url打开默认浏览器

Windows.System.Launcher.launchUriAsync(  
    new Windows.Foundation.Uri(url))
    .then(function (success) {
        if (success) {
            console.log('opened ' + url);
        } else {
            console.log('failed opening ' + url);
        }
    });