gpt4 book ai didi

javascript - 如何在 Google Chrome Apps 中使用 允许弹出窗口和重定向?

转载 作者:行者123 更新时间:2023-11-30 16:25:01 25 4
gpt4 key购买 nike

我有一个使用 <webview> 的 Google Chrome 浏览器应用程序组件。

<webview>里面,在 guest 的 URL 中,用户身份验证是使用由 OAuth 客户端管理的弹出窗口和重定向来处理的,以响应登录按钮 onclick事件。

我的问题是,当我点击我的登录按钮时,没有任何反应。即,没有弹出窗口。没有重定向。没有登录。

如何解决此问题以允许我的 OAuth 实现所需的弹出窗口和重定向?

窗口.html
<!DOCTYPE html>
<html>
<head>
...
</head>
<body>
<webview id="webview" src="https://mywebapp.com"></webview>
</body>
</html>
背景.js
chrome.app.runtime.onLaunched.addListener(function() {
runApp();
});

function runApp() {
chrome.app.window.create('window.html', {
state: 'fullscreen'
});
}

var webview = null;
function isSafeUrl(url) {
// This is Hello world test for now; permissions code will go here later
return true;
}

function onPermissionRequest(e) {
e.request.allow();
// This is Hello world test for now; permissions code will go here later
}

function onDomReady() {
webview = document.getElementById('webview');
webview.addEventListener('permissionrequest', onPermissionRequest);
}

document.addEventListener('DOMContentLoaded', onDomReady);

最佳答案

您的脚本需要分成两部分。

后台脚本运行在与 window.html 不同的文档中, Event page .您的应用应如下所示:

enter image description here

// This should be split off to app.js
var webview = null;
function isSafeUrl(url) {
// This is Hello world test for now; permissions code will go here later
return true;
}

function onPermissionRequest(e) {
e.request.allow();
// This is Hello world test for now; permissions code will go here later
}

function onDomReady() {
webview = document.getElementById('webview');
webview.addEventListener('permissionrequest', onPermissionRequest);
}

document.addEventListener('DOMContentLoaded', onDomReady);

然后包括一个<script>新脚本的标记为 window.html .


由于 Chrome 应用程序中没有“webview 窗口”这样的概念,因此它会比允许所有内容更复杂。

你需要 catch the newwindow event并通过创建一个新的 <webview> 来处理它,可能在另一个窗口中。这不是很容易,但如果您寻找的话,可能已经有实现了。

为了真正进行身份验证,您需要确保两个 webviews share a partition .

..如您所见,它比 iframe 复杂得多。


但是!我相信您完全走错了路。如果您的任务是获取 OAuth token ,您应该考虑 chrome.identity API , 特别是 launchWebAuthFlow .

关于javascript - 如何在 Google Chrome Apps 中使用 <webview> 允许弹出窗口和重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34246111/

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