【发布时间】:2019-07-06 15:45:08
【问题描述】:
我正在创建一个使用 firebase google 身份验证登录的网站。它在所有浏览器中都可以正常工作。但是当我在我的应用程序中将此网站添加为 webview 时,它不起作用。
显示此错误的网站:
运行此应用程序的环境不支持此操作。 “location.protocol”必须是 http、https 或 chrome-extension,并且必须启用网络存储。
下面是一些代码:
javascript 代码:
function login(){
console.log('login called');
function newLoginHappend(user){
if(user){
model_questions(user);
}else{
var provider = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(provider).then(function(result) {
// This gives you a Google Access Token. You can use it to access the Google API.
var token = result.credential.accessToken;
// The signed-in user info.
var user = result.user;
// ...
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// ...
});
}
}
firebase.auth().onAuthStateChanged(newLoginHappend);
}
window.onload = login();
网页浏览代码:
WebSettings webSettings =webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://mahmud-cse16.github.io/CBAP_Handout/");
有什么方法或技术可以解决这个问题吗?如果您有任何想法,请与我们分享。
谢谢
【问题讨论】:
-
启用DOM存储并检查问题是否仍然存在,webSettings.setDomStorageEnabled(true);
-
谢谢它的工作原理。尝试此操作后,我收到了 disallowed_useragent 错误。然后我就修好了。
标签: javascript android firebase-authentication android-webview