# App打通H5

> 来源：https://help.gravity-engine.com/docs/client-sdk/ios/advanced/app-h5-bridge
> 说明 iOS App 内嵌 H5 页面如何通过 WKWebView 与原生 SDK 打通，确保 H5 事件沿用 App 的归因信息。



## 功能概述 [#功能概述]

在 iOS App 内嵌 H5 页面的混合开发模式下，通过 `showUpWebView:WithRequest:`方法建立 WKWebView 与原生 App 之间的数据通道，确保 H5 页面的事件能够正确归因到 App 渠道，保持数据一致性。

该方法需在 WKWebView 的 `decidePolicyForNavigationAction`代理方法中调用，以拦截和处理 H5 页面的请求，实现数据采集和打通。

### 方法定义 [#方法定义]

```objective-c
- (BOOL)showUpWebView:(id)webView WithRequest:(NSURLRequest *)request;
```

### 使用示例 [#使用示例]

```objective-c
//展示网页
WKWebView * webView = [[WKWebView alloc]initWithFrame:self.view.bounds];
webView.navigationDelegate = self;
[self.view addSubview:webView];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://192.168.2.229:5500/index.html"]]];

//WKNavigationDelegate
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
{
    [[GravityEngineSDK sharedInstance] showUpWebView:webView WithRequest:navigationAction.request];
    decisionHandler(WKNavigationActionPolicyAllow);
}
```
