如何在WebView上使用JS脚本运行html

时间:2016-03-31 22:51:59

标签: android html webview

我正在尝试使用JS脚本将以下html代码运行到webview中。

<html>
    <script type="text/javascript" src="//static.apester.com/js/sdk/v1.1/apester-sdk.min.js"></script>
    <body>
         <interaction id="56fda67582287b5830c4ec8f"></interaction>
    </body>
</html>

以上代码在Tryit Editor

上运行

我已将 INTERNET权限添加到清单

XML代码(没什么新内容):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="bet.abpla.webviewdemo02.MainActivity">

    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

Java代码:

public class MainActivity extends AppCompatActivity {

    String Identifier = "56fda67582287b5830c4ec8f";
    String Mime = "text/html";
    String Encoding = "UTF-8";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WebView webView = (WebView) findViewById(R.id.webview);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadDataWithBaseURL(null, getHTMLData(Identifier), Mime, Encoding, null);
    }

    private String getHTMLData(String ApesterId) {

        return "<!DOCTYPE html>" +
                "<html>" +
                "<script type=\"text/javascript\" src=\"//static.apester.com/js/sdk/v1.1/apester-sdk.min.js\"></script>" +
                "<body>" +
                "<interaction id=\"" + ApesterId + "\"></interaction>" +
                "</body>" +
                "</html>";
    }

}

Tryit Editor上粘贴上述HTML代码将显示预期结果。

不幸的是在android中,它什么都没显示(只是一个空白的白色屏幕,默认的操作栏没有Hello World文本)。有人能告诉我哪里出错了吗?

此致

1 个答案:

答案 0 :(得分:0)

将代码的最后一行更改为:

webview.loadDataWithBaseURL("", getHTMLData(Identifier), "text/html", "UTF-8", "");