【问题标题】:WebView causing Uncaught TypeError when loading my html Data加载我的 html 数据时,WebView 导致 Uncaught TypeError
【发布时间】:2017-08-01 09:10:49
【问题描述】:

我正在使用 WebView 将 Vpaid html5player 放入应用程序中。Webview 发生在 javascript 错误中..

08-01 10:20:06.967: I/chromium(24646): [INFO:CONSOLE(60)] "Uncaught TypeError: this[a] is not a function", source: http://vjs.zencdn.net/4.12/video.js (60)

MainActivity.java

package com.example.gowsample;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.ConsoleMessage;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
 public class MainActivity extends Activity {
 private WebView mWebview ;

@SuppressWarnings("deprecation")
@SuppressLint({ "NewApi", "SetJavaScriptEnabled" }) 
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mWebview  = (WebView)findViewById(R.id.webView1);


    WebSettings settings = mWebview.getSettings();
    settings.setJavaScriptEnabled(true);

    settings.setDomStorageEnabled(true);
    String summary = "<!DOCTYPE html><html><meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"><!-- Video.js 4 -->\n<link href=\"http://vjs.zencdn.net/4.12/video-js.css\" rel=\"stylesheet\">\n<script src=\"http://mysite/VPAID1/video.js\"></script>\n<!-- Common -->\n<link href=\"http://mysite/bin/videojs.vast.vpaid.min.css\" rel=\"stylesheet\">\n<!-- Video.js 5 -->\n<script src=\"http://mysite/bin/videojs_4.vast.vpaid.min.js\"></script>\n<script src=\"http://mysite/bin/es5-shim.js\"></script>\n<script src=\"http://mysite/VPAID/bin/ie8fix.js\"></script>\n<video id=\"example_video_1\" class=\"video-js vjs-default-skin\"\n    controls preload=\"auto\" width=\"300\" height=\"250\"\n    poster=\"http://vjs.zencdn.net/v/oceans.png\"\n    data-setup='{\n      \"plugins\": {\n      \"vastClient\": {\n        \"adTagUrl\": \"http://mysite/sincity.xml\",\n        \"adCancelTimeout\": 5000,\n        \"adsEnabled\": true\n        }\n      }\n    }'>\n  <source src=\"http://vjs.zencdn.net/v/oceans.mp4\" type='video/mp4'/>\n\n \n</video>\n</html>";

 String html =summary;

 mWebview.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
    Log.d("Moorthy", consoleMessage.message() + " -- From line "
            + consoleMessage.lineNumber() + " of "
            + consoleMessage.sourceId());
    return super.onConsoleMessage(consoleMessage);
   }
   });

   mWebview.loadData(html, "text/html", null);

   //mWebview.loadUrl("http://dhmoorthy94.000webhostapp.com/vpaid/VPAID1/secretmedia.php");    

      }

   }

知道是什么导致了这些错误吗?

注意:mWebview.loadUrl 其完美运行..但加载数据传递相同的值 javascript 错误发生...

【问题讨论】:

  • webView.loadData(summary, "text/html; charset=utf-8", "UTF-8");
  • 试试这个@Moorthy
  • 谢谢你的回复,但是 webView.loadData(summary, "text/html; charset=utf-8", "UTF-8");这也不起作用@nihal_softy
  • 我测试了您的代码,发现 WebView 上出现了一个视频页面。那么您到底想要什么?
  • 您是否在清单中授予互联网权限?

标签: android html webview vast


【解决方案1】:

我复制了您的代码并在我的机器上进行了测试。一切都很好。当我查看您的 HTML 数据时,有一个 URL 需要在 WebView 上加载互联网。所以我所做的,我只给了权限,你的代码工作正常,所以

  1. 打开您的清单文件。
  2. 添加internet权限。

【讨论】:

  • 互联网权限也被授予但无法正常工作..请查看此链接dhmoorthy94.000webhostapp.com/vpaid/VPAID1/secretmedia.php它在浏览器中的工作原理上面的链接类似于它希望在 webview loaddata 中使用..你能帮我吗
  • 是的..我也一样,点击按钮后,视频开始播放......
  • 会播放视频但是播放两个视频啊?
猜你喜欢
  • 1970-01-01
  • 2019-07-14
  • 1970-01-01
  • 2013-06-04
  • 2012-12-24
  • 2014-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多