我目前正在使用cordova框架为Windows Phone 8.0和Windows Phone 8.1开发一个hyrbid移动应用程序。我需要使用应用内浏览器启动登录页面。
我使用了以下javascript代码。
var authWindow = window.open('http://www.mylogin.com', 'mywindow', 'location=yes,toolbar=yes,clearsessioncache=yes');
虽然窗口打开正常,但我在此处获取null作为窗口对象的引用。我需要引用在打开的窗口上执行其他操作。
在进一步的研究中,我发现桌面IE11中也存在问题,我们必须禁用保护模式。一旦我做了它并在桌面IE11上运行代码它工作正常。
我不确定如何在我的场景中实现同样的目标。我需要在浏览器控件上更改任何设置吗?你是如何解决这个问题的?
答案 0 :(得分:0)
在Windows Phone上打开外部页面作为Javascript移动应用程序是一个真正的问题。在Android和IOS上,你只需使用“windows.open”就可以了。但在WP上,我们需要创建一个C#插件。
在我的应用上,我做了以下内容:
1 - 你需要一个调用插件的javascript函数。
Javascript调用
mysql -u xxxx -p xxxxxxxxx < dump_opt.sql
Enter password:
ERROR 1030 (HY000) at line 41: Got error -1 from storage engine
2 - 现在您需要实现一个使用正确的URL调用Windows Phone浏览器的C#类。为此,您应该创建.cs文件(在示例中,其名称为YourPluginClass.cs):
YourPluginClass.cs(C#)
function openExternalURL(theURL) {
cordova.exec(function () { }, function () { }, "yourApp.main.plugins.YourPluginClass", "openURLWithNative", [theURL);
};
这样,您就可以在Windows Phone上打开任何外部URL,例如Android和IOS。
希望它有所帮助。最诚挚的问候!
答案 1 :(得分:0)
在我这里有一些很好的工作经验:
在window.open("about:blank", "newPage");
调用之前执行AJAX
,然后在调用之后通过调用window.open("http://google.com", "newPage");
将URL添加到打开的窗口中。