Я хочу добавить токен доступа в веб-просмотр перед его загрузкой. По сути, веб-приложение будет считывать токен доступа из хранилища браузера и использовать его для вызова безопасного API.
Поток приложений выглядит следующим образом:
- Пользователь входит в мобильное приложение и получает токен доступа
- Затем токен доступа должен быть установлен как свойство хранилища сеанса веб-просмотра, прежде чем он начнет загружаться
- Веб-приложение считывает токен доступа из хранилища и выполняет вызовы API.
Что я пробовал:
- onLoadStart - работает много раз, но все еще существует условие состязания между загрузкой вида и впрыском
- injectJavaScript: использование этого вместе с onLoadStart
- injectedJavaScript: не работает, поскольку javascript внедряется после начала загрузки представления
Код:
// Inject Access Token
_injectAccessToken = () => {
const script = `window.sessionStorage.setItem("access_token", "token")`;
this.webview.injectJavaScript(script);
};
// Render
<WebView
ref={ref => (this.webview = ref)}
source={{ uri: `` }}
onLoadStart={this._injectAccessToken}
domStorageEnabled={true}
/>;
Что необходимо решить:
Теперь я хочу избавиться от состояния гонки между загрузкой вида и впрыском. Я не обязан использовать это решение, любые другие хитрости или решения будут хороши, пока инъекция произойдет до просмотра нагрузок.
Любые ссылки или предложения на другие статьи приветствуются.