简体   繁体   English

React Native Android WebView:javaScriptEnabled似乎不起作用

[英]React Native Android WebView: javaScriptEnabled does not seem to be working

While developing an app with React Native for Android, I was attempting to use a WebView for an OAuth flow. 在使用React Native for Android开发应用程序时,我试图将WebView用于OAuth流。 The WebView displayed correctly, but the provider redirected to their "JavaScript must be enabled" error page. WebView可以正确显示,但是提供程序已重定向到其“必须启用JavaScript”错误页面。

I thought I found a quick and clear answer in the docs quoted below, but after setting this property, I still got redirected to the provider's "JavaScript must be enabled" error page. 我以为我在下面引用的文档中找到了一个快速明确的答案,但是设置此属性后,我仍然被重定向到提供程序的“必须启用JavaScript”错误页面。

android javaScriptEnabled bool android javaScriptEnabled bool
Used on Android only, JS is enabled by default for WebView on iOS 仅在Android上使用,默认情况下在iOS上为WebView启用JS

I created the following component as a reduction, and sure enough, when the WebView displays the resulting page, it reports that JavaScript is not enabled. 我创建了以下组件作为减少组件,并且可以肯定的是,当WebView显示结果页面时,它报告未启用JavaScript。

Am I overlooking something? 我在俯视什么吗?

'use strict';

var React = require('react-native');

var {
  View,
  StyleSheet,
  WebView,
} = React;

var MyComponent = React.createClass({

  getInitialState: function() {
    return {
      url: 'https://www.whatismybrowser.com/detect/is-javascript-enabled',
    };
  },

  render: function() {
    return(
      <View style={[styles.container]}>
        <WebView style={styles.webview}
          url={this.state.url}
          javaScriptEnabled={true}
        />
      </View>
    );
  },

});

var styles = StyleSheet.create({
  container: {
    flex: 1,
  },
  webview: {
    flex: 1,
  },
});

module.exports = MyComponent;

The docs are referencing pre-release version 0.18 which contains a breaking change regarding enabling JavaScript in Android WebView. 该文档引用的是预发布版本0.18,其中包含有关在Android WebView中启用JavaScript的重大更改。

Breaking changes 重大变化

To enable JavaScript in Android WebView, use javaScriptEnabled instead of javaScriptEnabledAndroid. 要在Android WebView中启用JavaScript,请使用javaScriptEnabled而不是javaScriptEnabledAndroid。

react-native 0.18 反应本色0.18

If you are on a version under 0.18 you can use javaScriptEnabledAndroid but be aware that this will break once it is officially released. 如果您使用的版本低于0.18,则可以使用javaScriptEnabledAndroid但请注意,一旦正式发布,它将中断。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM