我正在为Android和仅使用webview的iphone / ipad创建一个非常简单的应用程序.
我如何存储用户名和密码,这样用户就不必每次都键入它们.提前致谢.
import React, { Component } from 'react';
import {
AppRegistry,
WebView
} from 'react-native';
export default class myapp extends Component {
render() {
return (
source={{uri: 'https://mysecretappurl.com'}}
/>
);
}
}
AppRegistry.registerComponent('myapp', () => myapp);
感谢Fabian的快速回复.
我用InjectionJavascript解决了该问题,即使我在android和ios上关闭并重新启动该应用程序,数据仍然保留.起初,我尝试使用异步存储和reactnativ-webview-bridge时遇到了麻烦,但是由于缺乏知识,我无法实现它们.
import React, { Component } from 'react';
import {
AppRegistry,
WebView
} from 'react-native';
export default class myapp extends Component {
render() {
let jsCode = `
var cookie={};
document.cookie.split('; ').forEach(function(i){cookie[i.split('=')[0]]=i.split('=')[1]});
document.querySelector('#email').value=cookie['email'] || '';
document.querySelector('#password').value=cookie['password'] || '';
document.querySelector('#login button').onclick = function(){
document.cookie = 'email='+document.querySelector('#email').value;
document.cookie = 'password='+document.querySelector('#password').value;
};
`;
return (
source={{uri: 'https://mysecretappurl.com'}}
injectedJavaScript={jsCode}
/>
);
}
}
AppRegistry.registerComponent('myapp', () => myapp);
解决方法:
我不知道我是否正确理解您:
您正在编写一个带有本机反应的“缩小的浏览器”,以仅显示您的网页,并且要在该页面上填写登录表单吗?
如果确实如此,那么您正在寻找一种可能性,以与WebView组件中的页面交换来自React Native应用程序的数据.看一下this tutorial of react-native-webview-bridge.
我会尝试以下方法:
>与您的网页进行通信,并为您的登录表单建立一个侦听器,以将凭据传递给您的RN应用
>使用诸如react-native-simple-store之类的模块将凭证存储在RN应用中
>如果您下次启动该应用,请检查您的存储空间,如果凭据不为空,则通过bridge / injected javascript将其发送到您的网页
标签:reactjs,native,webview,ios,android
来源: https://codeday.me/bug/20191026/1935740.html