flutter開發(fā)的APP里要嵌進(jìn)去一個(gè)js商城網(wǎng)站Vue框架,商城的后臺(tái)賬號(hào)系統(tǒng)是和APP的賬號(hào)系統(tǒng)打通的。
需求是同步APP和網(wǎng)頁(yè)商城的登錄狀態(tài),在APP點(diǎn)擊進(jìn)入商城模塊的時(shí)候,如果APP是已經(jīng)登陸的則商城也設(shè)置為登錄狀態(tài),未登錄亦然。
已知商城的登錄狀態(tài)是由userName(存在cookie里)、userUuid和authToken(存在localStorage里)
所以APP端webview_flutter需要在加載商城網(wǎng)頁(yè)的時(shí)候把以上三個(gè)參數(shù)設(shè)置進(jìn)去
重點(diǎn)代碼:
在onPageFinished里邊用
if (UserManager.instance.isLogin()) {
set Cookie的方法:
_controller
? ? ? .evaluateJavascript('document.cookie = "userName=$userName;"')
.then((result) {});
set?localStorage的方法:
_controller.evaluateJavascript("(function() { try { window.localStorage.setItem('userUuid', '$userUuid');window.localStorage.setItem('authToken','$authToken');); return window.localStorage.authToken; } catch (err) { return err; } })();").then((result) {});
_controller.evaluateJavascript("document.cookie").then((result) {
print('設(shè)置getcookie=$result');
});
}
注意以上代碼的引號(hào),即使變量也要用引號(hào)括起來(lái)。try里邊可以return你想要驗(yàn)證的值是否設(shè)置成功。