我正在创建一个使用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/");
有什么方法或技术可以解决此问题?如果您有任何想法,请与我们分享。
谢谢
答案 0 :(得分:0)
尝试为Webview启用DOM存储
WebSettings webSettings = myWebView.getSettings();
webSettings.setDomStorageEnabled(true); // localStorage
设置是否启用DOM存储API。默认值为false。