gpt4 book ai didi

javascript - window.open 在 Windows Phone 8 上返回 null

转载 作者:行者123 更新时间:2023-11-28 07:58:04 28 4
gpt4 key购买 nike

我目前正在使用 cordova 框架为 Windows Phone 8.0 和 Windows Phone 8.1 开发混合移动应用程序。有一种情况,我需要使用应用内浏览器来启动登录页面。

我使用了以下 JavaScript 代码。

var authWindow = window.open('http://www.mylogin.com', 'mywindow', 'location=yes,toolbar=yes,clearsessioncache=yes');

虽然窗口打开得很好,但我在这里得到了 null 作为对窗口对象的引用。我需要引用来在打开的窗口上执行其他操作。

经过进一步研究,我发现桌面版 IE11 也存在问题,我们必须禁用保护模式。一旦我这样做并在桌面版 IE11 上运行代码,它就可以正常工作。

我不确定如何在我的场景中实现相同的目标。我需要更改浏览器控件上的任何设置吗?您如何解决这个问题?

最佳答案

在 Windows Phone 上作为 Javascript 移动应用程序打开外部页面是一个真正的问题。在 Android 和 IOS 上,您只需使用“windows.open”即可。但在 WP 上,我们需要创建一个 C# 插件。

在我的应用程序上,我执行了以下操作:

1 - 您将需要一个调用该插件的 JavaScript 函数。

Javascript 调用

function openExternalURL(theURL) {
cordova.exec(function () { }, function () { }, "yourApp.main.plugins.YourPluginClass", "openURLWithNative", [theURL);
};

2 - 现在您需要实现一个 C# 类,该类使用正确的 URL 调用 Windows Phone 浏览器。为此,您应该创建一个 .cs 文件(在示例中其名称为 YourPluginClass.cs):

YourPluginClass.cs (C#)

namespace yourApp.main.plugins
{
class YourPluginClass : BaseCommand
{
public void openURLWithNative(string uri)
{
WebBrowserTask task = new WebBrowserTask();
string optVal = JsonHelper.Deserialize<string[]>(uri)[0];

task.Uri = new Uri(optVal);
task.Show();
}
}
}

这样,您就可以在 Windows Phone(例如 Android 和 IOS)上打开任何外部 URL。

希望有帮助。最好的问候!

关于javascript - window.open 在 Windows Phone 8 上返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25820623/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com