flutter - 是否有可能 - 在 Flutter Web 应用程序中插入 google AdSense?
问题描述
我尝试在我的网站上插入下一个代码(Google AdSense),但现在没有成功。代码是:
<script type="text/javascript">var nend_params={"media":00000,"site":000000,"spot":000000,"type":1,"oriented":1};0</script>
<script type="text/javascript" src="https://js1.nend.net/js/nendAdLoader.js"></script>
1.有一段时间,我尝试了一个带有类似句子的 'dart:js'
js.context.callMethod(..
但是,认为它不起作用,因为我们需要展示广告,而不仅仅是执行 javascript 代码..
2.next,我想它可以是一个WebView(一个webview,在webapp..)并尝试使用next:
依赖项:webview_flutter:^0.3.14 但它与
“错误:PlatformException(未注册的工厂,没有为视图类型'plugins.flutter.io/webview'注册工厂”...
可能是有积极经验的人,或者可以给我任何建议。
解决方案
如果您只需要网页中的这些脚本,您可以尝试将其web/Index.html
直接包含在页面中。
否则,您将不得不使用ui.platformViewRegistry.registerViewFactory
此处所示的PlatFormView 示例。以下代码会将脚本元素添加到您的页面。
import 'package:flutter/material.dart';
import 'dart:ui' as ui;
import 'dart:html';
class MyHomePage extends StatelessWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
Widget build(BuildContext context) {
ui.platformViewRegistry.registerViewFactory("add_script", (int viewId) {
ScriptElement element = ScriptElement()
..src = "https://js1.nend.net/js/nendAdLoader.js"
..type = "text/javascript";
return element;
});
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Directionality(
textDirection: TextDirection.ltr,
child: SizedBox(
width: 640,
height: 360,
child: HtmlElementView(viewType: 'add_script'),
),
),
],
),
);
}
}
注意:此代码需要一个托管小部件,例如 MaterialApp 内的脚手架或类似的东西。对于脚本中的代码,尝试使用不同的视图类型字符串创建一个类似的小部件并使用
setInnerHtml
或类似的方法。
但是你应该知道这个元素是作为一个 shadow dom 元素添加到你的页面中的。本期就此展开讨论。
推荐阅读
- jquery - 根据产品选项限制数量下拉列表
- c# - 使用 BasePage 与 MasterPage 的 ASP.NET 模板
- c# - 将对象从类传递到 Windows 窗体
- email - Nodemailer:在 prod 中发送电子邮件不起作用,但在本地工作中发送它们
- github - 如何使用 Visual Studio 2019 使用 ssh 密钥连接到组织的 Guthub 存储库?
- tensorflow - 模型输出形状 (batch_size,1,1,n_classes) 和 SparseCategoricalCrossEntropy Loss 的标签形状
- javascript - 理解promise then handler的语法和语义
- frontend-maven-plugin - 未能执行目标 com.github.eirslett:frontend-maven-plugin:1.10.0:npm
- system-verilog - 在 SystemVerilog 中 fork join_none 后只等待一些线程完成
- javascript - Map 函数在使用 tailwind 的实用程序类时以不同方式呈现第一个反应元素