android或者ios的webview打开cocos的H5游戏,如何和webview或者android、ios交互??

如题~~~~~

Android 和 iOS 都有对应的跟 webview 通信 api 的,下面代码仅供参考。
比如 Android 可以类似这样:

private void showWebView(String url) {
        context.runOnUiThread(new Runnable() {

            @Override
            public void run() {
                if (webView == null) {
                    setScreenOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                    webView = new WebView(context);
                    WebSettings webSettings = webView.getSettings();
                    webSettings.setJavaScriptEnabled(true);
                    webView.setWebViewClient(new WebViewClient());
                    webView.addJavascriptInterface(new WebAppInterface(), "aaaSettings");
                    webView.setWebChromeClient(new WebChromeClient());
                    rootView.addView(webView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
                }
                webView.setVisibility(View.VISIBLE);
                webView.loadUrl(url);
            }
        });
    }

iOS 也是类似的

- (void)openWebViewWithURL:(NSString *)urlString {
    dispatch_async(dispatch_get_main_queue(), ^{
        if (!self.webView) {
            WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
            WKUserContentController *contentController = [[WKUserContentController alloc] init];
            [contentController addScriptMessageHandler:self name:@"iOS"];
            config.userContentController = contentController;
            // 创建并注入全局变量和方法
            NSString *scriptSource =
                @"var aaaSettings = { "
                "  callMethod: function(message) { window.webkit.messageHandlers.iOS.postMessage({method: 'callMethod', message: message}); },"
                "closeWebView: function() { window.webkit.messageHandlers.iOS.postMessage({method: 'closeWebView'}); },"
                "openWithBrowser: function(url) {window.webkit.messageHandlers.iOS.postMessage({method: 'openWithBrowser',message: url});},"
                "};";
            WKUserScript *userScript = [[WKUserScript alloc] initWithSource:scriptSource
                                                              injectionTime:WKUserScriptInjectionTimeAtDocumentStart
                                                           forMainFrameOnly:NO];
            [contentController addUserScript:userScript];
            
            self.webView = [[WKWebView alloc] initWithFrame:self.parentView.bounds configuration:config];
            self.webView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
            self.webView.UIDelegate = self;
            [self.parentView addSubview:self.webView];
        }
        
        NSURL *url = [NSURL URLWithString:urlString];
//        NSURL *url = [NSURL URLWithString:@"https://www.baidu.com"];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [self.webView loadRequest:request];
        self.isWebViewVisible = YES;
        [self setOrientation:UIInterfaceOrientationPortrait];
    });
}
3赞

注入到window对象中调用

你ios使用webview审核不会被拒吗?通过了没,我最近也有打算