Mensagens no app em HTML
Saiba como adicionar a interface JavaScript do Braze ao seu app, para que você possa usar a API do Braze para criar mensagens HTML no app em suas WebViews personalizadas.
Pré-requisitos
Antes de poder usar esse recurso, você precisará integrar o Android Braze SDK.
Sobre o envio de mensagens HTML
Com a interface JavaScript do Braze, você pode aproveitar o Braze dentro das WebViews personalizadas em seu app. O InAppMessageJavascriptInterface é responsável por:
- Injetar a ponte Braze JavaScript em seu WebView, conforme descrito no Guia do Usuário : Mensagens no app em HTML.
- Passar os métodos de ponte recebidos de seu WebView para o SDK do Braze para Android.
Adição da interface a um WebView
O uso da funcionalidade da Braze a partir de um WebView em seu app pode ser feito adicionando a interface Braze JavaScript ao seu WebView. Depois que a interface for adicionada, a mesma API estará disponível para o User Guide: Mensagens no app em HTML estarão disponíveis em seu WebView personalizado.
1
2
3
4
5
String javascriptString = BrazeFileUtils.getAssetFileStringContents(context.getAssets(), "braze-html-bridge.js");
myWebView.loadUrl("javascript:" + javascriptString);
final InAppMessageJavascriptInterface javascriptInterface = new InAppMessageJavascriptInterface(context, inAppMessage);
myWebView.addJavascriptInterface(javascriptInterface, "brazeInternalBridge");
1
2
3
4
5
val javascriptString = context.assets.getAssetFileStringContents("braze-html-bridge.js")
myWebView.loadUrl("javascript:" + javascriptString!!)
val javascriptInterface = InAppMessageJavascriptInterface(context, inAppMessage)
myWebView.addJavascriptInterface(javascriptInterface, "brazeInternalBridge")
Incorporação de conteúdo do YouTube
O YouTube e outros conteúdos em HTML5 podem ser reproduzidos em mensagens no app em HTML. Isso requer que a aceleração de hardware seja ativada na atividade em que a mensagem no app está sendo exibida; consulte o guia do desenvolvedor do Android para obter mais detalhes. A aceleração de hardware está disponível apenas nas versões 11 e posteriores da API do Android.
A seguir, um exemplo de um vídeo do YouTube incorporado em um trecho de HTML:
1
2
3
4
5
6
7
8
9
<body>
<div class="box">
<div class="relativeTopRight">
<a href="appboy://close">X</a>
</div>
<iframe width="60%" height="50%" src="https://www.youtube.com/embed/_x45EB3BWqI">
</iframe>
</div>
</body>
Pré-requisitos
Antes de usar este recurso, você precisará integrar o SDK Swift Braze.
About HTML messages
With the Braze JavaScript interface, you can leverage Braze inside the custom WebViews within your app. The interface’s ScriptMessageHandler is responsible for:
- Injecting the Braze JavaScript bridge into your WebView, as outlined in User Guide: HTML in-app messages.
- Passing the bridge methods received from your WebView to the Braze Swift SDK.
Adding the interface to a WebView
First, add the ScriptMessageHandler from WebViewBridge to your app.
1
let scriptMessageHandler = Braze.WebViewBridge.ScriptMessageHandler(braze: braze)
Add the initialized scriptMessageHandler to a WkWebView’s userContentController.
1
2
3
4
configuration.userContentController.add(
scriptMessageHandler,
name: Braze.WebViewBridge.ScriptMessageHandler.name
)
Then create the WebView using your configuration.
1
let webView = WKWebView(frame: .zero, configuration: configuration)
When you’re finished, your code should be similar to the following:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Create the script message handler using your initialized Braze instance.
let scriptMessageHandler = Braze.WebViewBridge.ScriptMessageHandler(braze: braze)
// Create a web view configuration and setup the script message handler.
let configuration = WKWebViewConfiguration()
configuration.userContentController.addUserScript(
Braze.WebViewBridge.ScriptMessageHandler.script
)
configuration.userContentController.add(
scriptMessageHandler,
name: Braze.WebViewBridge.ScriptMessageHandler.name
)
// Create the webview using the configuration
let webView = WKWebView(frame: .zero, configuration: configuration)
Example: Logging a custom event
In the following example, BrazeBridge logs a custom event from existing web content to the Braze Swift SDK.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Logging data via BrazeBridge Example</title>
<script>
function logData(data) {
window.brazeBridge.logCustomEvent(data);
}
</script>
</head>
<body>
<input
type="button"
value="Click to log a custom Event 'completed_level'"
onclick="logData('completed_level')"
/>
</body>
</html>
Editar esta página no GitHub