如何将背景设置为对 Nativescript webview 透明?

How to set the background transparent to a Nativescript webview?

我的 xml 文件中有一个简单的 webview 标签,如下所示:

<WebView src="{{ content }}"/>

我尝试在 css 文件中将背景颜色设置为 'transparent',也使用内联 css,但我无法将 webview 背景设置为透明.

有关该项目的更多信息: - 本机版本:2.2.1 - 我在支持系统应用程序上有一张工单动向列表(比如特定案例的发生率)。这种移动通常是 html 电子邮件(带有图像、样式等)...那是因为我使用的是网络视图而不是 html 视图。正如您在图像中看到的,webview 的背景是白色的。

这是我的 xml 片段:

<!-- Repeat ticket's movs-->
<Repeater items="{{ movs }}">
    <Repeater.itemTemplate>
        <StackLayout>
            <StackLayout class="{{ movClass }}" visibility="{{ id != -1 ? 'visible' : 'collapsed' }}">
                <Label class="date" text="{{name + ' @' + dateValue}}"/>
                <WebView src="{{ content }}"/>
            </StackLayout>

        </StackLayout>
    </Repeater.itemTemplate>
</Repeater>

在 js 文件中,我从 url 中获取动作并填充数组。 如果您需要更多信息,请告诉我,我会上传。

谢谢!

BACKGROUND-NOT-TRANSPARENT-WEBVIEW

要使 WebView 具有透明背景色,您可以使用本机代码。对于 Android,您可以对 Android 使用 setBackgroundColor 方法使背景颜色透明。对于 iOS,您应该使用 UIColor.clearColor() 来移除 webView 背景颜色。您可以查看下面附带的示例代码。关于这一点,您还应该在项目中添加 tns-platform-declarations 插件,这将允许您在打字稿代码中使用一些本机方法。

主要-page.xml

<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="navigatingTo">
<GridLayout rows="* 70 70" columns="*"  backgroundColor="green" >
    <WebView row="0"  loaded="wvloaded" id="wv" class="webviewStyle" src="
                  <html style='background-color: transparent;'>
                  <body style='background-color: transparent;'>

                  <h1>My First Heading</h1>
                  <p>My first paragraph.</p>

                  </body>
                  </html>" />
    <Label row="1" text="{{email}}" textWrap="true" />
    <Label row="2" text="{{password}}" textWrap="true" />


  </GridLayout>
</Page>

主要-page.ts

import { EventData } from "tns-core-modules/data/observable";
import { Page } from "tns-core-modules/ui/page";
import { HelloWorldModel } from "./main-view-model";
import {WebView} from "tns-core-modules/ui/web-view";
import {isIOS, isAndroid} from "tns-core-modules/platform"


var Observable = require("data/observable").Observable;

var user = new Observable({
    email: "user@domain.com",
    password: "password"
});

// Event handler for Page "navigatingTo" event attached in main-page.xml
export function navigatingTo(args: EventData) {
    // Get the event sender
    var page = <Page>args.object;
    page.bindingContext = user;
}

export function wvloaded(args:EventData){
    var newwv:WebView =<WebView> args.object;
    if(isAndroid){
        newwv.android.setBackgroundColor(0x00000000);//android.graphics.Color.TRANSPARENT);//
        newwv.android.setLayerType(android.view.View.LAYER_TYPE_SOFTWARE, null);
    }
    if(isIOS){
        newwv.ios.backgroundColor = UIColor.clearColor;
        newwv.ios.opaque=false;
    }

}