标签:jquery android mobile android-webview jquery-mobile
我们在Android中包装了一个带有Webview控件的jQuery移动应用程序. jQuery移动应用程序有一个登录页面.我们希望允许用户保存他们的登录信息.
诀窍是客户希望我们不使用cookie来这样做.
解决方案/问题#1:
我们已经考虑过可能创建一个调用身份验证服务并存储令牌的Android登录屏幕.然后,令牌通过url属性中的querystring传递到webview.然后,jQuery移动应用程序可以从查询字符串中获取令牌并对其进行验证,从而允许绕过移动应用程序的登录屏幕.
然而,问题是……当用户通过jQuery移动应用程序注销时会发生什么?移动应用程序如何告诉Android包装器删除令牌?
解决方案#2,但同样的问题
相同的Android登录屏幕,但不是通过查询字符串参数传递它,在Android端使用javascript,遍历Webview DOM并在jQuery移动登录屏幕上填写用户名和密码.如果在启动应用程序时Android端存在该令牌,则只需绕过Android登录屏幕并自动填写用户凭据即可.
但是,用户手动注销仍然存在同样的问题.
我们是不是正确地考虑这个问题?
想法?
解决方法:
您可以使用webviews localstorage.您必须使用WebViewSettings类在Webview中启用它:
WebSettings settings = webview.getSettings();
settings.setDomStorageEnabled(true);
现在,您应该可以使用javascript访问localStorage,就像支持它的任何其他浏览器一样:
window.localStorage
// Set value
window.localStorage.setItem("username", "XXX");
// getting the value
var username = window.localStorage.getItem("username");
备选方案2:
为您的应用程序创建一个javascript界面.这将允许您创建和调用在您的Android应用程序中触发Java代码的javascript函数.此主题在此处描述:“将JavaScript代码绑定到Android代码”下的http://developer.android.com/guide/webapps/webview.html
标签:jquery,android,mobile,android-webview,jquery-mobile 来源: https://codeday.me/bug/20190630/1335606.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。