zoukankan      html  css  js  c++  java
  • RN Setting onMessage on a WebView overrides existing values of window.postMessage, but a previous value was defined错误

    在使用RN的WebView时有时会弹出:

    Setting onMessage on a WebView overrides existing values of window.postMessage, but a previous value was defined 错误的一个界面,关闭后不影响正常使用。

    简述下解决方案:

    1、在使用WebView的界面添加如下代码

    patchPostMessageFunction = function() {
            var originalPostMessage = window.postMessage;
          
            var patchedPostMessage = function(message: any, targetOrigin: string, transfer: Transferable[] | undefined) { 
              originalPostMessage(message, targetOrigin, transfer);
            };
          
            patchedPostMessage.toString = function() { 
              return String(Object.hasOwnProperty).replace('hasOwnProperty', 'postMessage');
            };
          
            window.postMessage = patchedPostMessage;
          };
          
         patchPostMessageJsCode = '(' + String(this.patchPostMessageFunction) + ')();';

    2、WebView中设置injectedJavaScript属性

    <WebView
                        injectedJavaScript={this.patchPostMessageJsCode} 
                    />

    参考地址:https://github.com/facebook/react-native/issues/10865#issuecomment-269847703

  • 相关阅读:
    Ansible跳板机自动部署
    nginx展示文件目录
    【转】消息钩子注册浅析
    windows临界区
    windbg定位死锁
    Windows工作集内存
    我的spring boot,杨帆、起航!
    CursorFileManager对cursor文件的读写
    eclipse执行maven install命令时跳过test
    bASE--Risk
  • 原文地址:https://www.cnblogs.com/lijianyi/p/13530190.html
Copyright © 2011-2022 走看看