当前位置:首页 > CN2资讯 > 正文内容

TortoiseSV 服务器 tvheadend服务器教程

3天前CN2资讯
package com.hhzt.iptv.adservice; import .Activity; import android.graphics.Bitmap; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.ViewGroup; import android.webkit.ConsoleMessage; import android.webkit.ValueCallback; import android.webkit.WebChromeClient; import android.webkit.WebResourceError; import android.webkit.WebResourceRequest; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.TextView; /** * Created by Administrator on 2019-04-16. */ public class AdActivity extends Activity { private WebView mWebView; private WebSettings mWebSetting; TextView beginLoading,endLoading,loading,mtitle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(); mWebView = (WebView)findViewById(.webView1); beginLoading = (TextView) findViewById(.text_beginLoading); endLoading = (TextView) findViewById(.text_endLoading); loading = (TextView) findViewById(.text_Loading); mtitle = (TextView) findViewById(.title); mWebSetting = mWebView.getSettings(); mWebSetting.setJavaScriptEnabled(true); /** * 传一个Android对象给JS,JS拿到对象以后就可以调用你传递的对象里面的方法 */ mWebView.addJavascriptInterface(new MyWeb(),"test");//AndroidtoJS类对象映射到js的test对象 mWebView.loadUrl("file:///android_asset/index.html"); /** * (2) WebViewClient类(主要作用是:处理各种通知 & 请求事件) */ mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //使得打开网页时不调用系统浏览器, 而是在本WebView中显示 view.loadUrl(url); return super.shouldOverrideUrlLoading(view, url); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { //设定加载开始的操作 // super.onPageStarted(view, url, favicon); System.out.println("开始加载了"); beginLoading.setText("开始加载了"); } @Override public void onPageFinished(WebView view, String url) { //设定加载结束的操作 // super.onPageFinished(view, url); endLoading.setText("结束加载了"); // Android版本变量 final int version = Build.VERSION.SDK_INT; /** * 因为该方法在 Android 4.4 版本才可使用,所以使用时需进行版本判断 * android 调用JS代码。需要在webview也没加载完成时调用,否则无效 */ if (version < 18) { mWebView.loadUrl("javascript:callAndroid()"); } else { mWebView.evaluateJavascript("javascript:callAndroid()", new ValueCallback<String>() { @Override public void onReceiveValue(String value) { //此处为 js 返回的结果 Log.i("TAG","onReceiveValue:"+value); } }); } } @Override public void onLoadResource(WebView view, String url) { //设定加载资源的操作 super.onLoadResource(view, url); } @Override public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { //该方法传回了错误码,根据错误类型可以进行不同的错误分类处理 Log.i("TAG","onReceivedError:"+errorCode); super.onReceivedError(view, errorCode, description, failingUrl); } }); /** * (3) WebChromeClient类( 作用:辅助 WebView 处理 Javascript 的对话框,网站图标,网站标题等等。) */ mWebView.setWebChromeClient(new WebChromeClient(){ @Override public void onProgressChanged(WebView view, int newProgress) { Log.i("TAG","onProgressChanged:"+newProgress); if (newProgress < 100) { String progress = newProgress + "%"; loading.setText(progress); } else if (newProgress == 100) { String progress = newProgress + "%"; loading.setText(progress); } } //获取网站标题 @Override public void onReceivedTitle(WebView view, String title) { // super.onReceivedTitle(view, title); System.out.println("标题在这里"); mtitle.setText(title); } //获取网站logo @Override public void onReceivedIcon(WebView view, Bitmap icon) { super.onReceivedIcon(view, icon); } @Override public boolean onConsoleMessage(ConsoleMessage consoleMessage) { Log.i("TAG","onConsoleMessage:"+consoleMessage.message()+ "-- from line "+consoleMessage.lineNumber()+" of "+consoleMessage.sourceId()); //这个方法返回Webview加载JS时的日志信息 return super.onConsoleMessage(consoleMessage); } }); } @Override protected void onResume() { super.onResume(); } //销毁Webview @Override protected void onDestroy() { if (mWebView != null) { // mWebView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null); mWebView.clearHistory(); ((ViewGroup) mWebView.getParent()).removeView(mWebView); mWebView.destroy(); mWebView = null; } super.onDestroy(); } //点击返回上一页面而不是退出浏览器 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); } } index.hdml界面<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Carson</title> </head> <body> //点击按钮则调用callAndroid函数 <button onclick="callAndroid()"></button> </body> <script> function callAndroid(){ // 由于对象映射,所以调用test对象等于调用Android映射的对象,注意此处不能定义test,如果定义的那就是一个新的对象,将会提示无法找到hello方法 test.hello("js调用了android中的hello方法"); } </script> </html>友情提示:修改index.html文件时,记得clean project一下,因为你运行时间AS编译器不会去编译assets里面的文件,或者在项目的build.gradle加上sourceSets { main { manifest.srcFile 'src/main/AndroidManifest.xml' java.srcDirs = ['src/main/java', 'src/main/aidl'] resources.srcDirs = ['src/main/java', 'src/main/aidl'] aidl.srcDirs = ['src/main/aidl'] res.srcDirs = ['src/main/res'] assets.srcDirs = ['src/main/assets'] } }


Android 为TV端助力



    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/20432.html

    分享给朋友:

    “TortoiseSV 服务器 tvheadend服务器教程” 的相关文章

    NameSilo Coupons - 如何以低成本注册域名并享受优质服务

    NameSilo自2010年成立以来,展现出稳定且迅猛的发展态势,成为了一家备受关注的域名注册商。总部位于美国亚利桑那州,NameSilo已经成功管理超过400万个活跃域名,且在行业内占据着显著的地位。在这条领域内,NameSilo被视为全球仅有的12家顶级域名注册商之一,这无疑为其信誉奠定了坚实基...

    选择阿里云VPS的最佳理由与性能评测

    在开始之前,先谈谈VPS是什么。VPS是虚拟专用服务器(Virtual Private Server)的缩写,简单来说,就是把一台物理服务器划分成多个虚拟服务器。每个VPS都拥有独立的操作系统和资源。这种安排让我能够更灵活地管理自己的服务器。一方面,VPS提供了更高的控制权和自定义性,另一方面,它比...

    高性价比的斯巴达VPS评分与使用推荐

    斯巴达VPS概述 在互联网上,选择合适的服务器解决方案对每个业务来说都是至关重要的。虚拟专用服务器(VPS)便是其中一项极具吸引力的选择。简单来说,VPS就像是一个在物理服务器上运行的独立小房间。每个VPS都有自己的操作系统和资源,允许用户拥有更高的自由度和灵活性。这种设置特别适合那些需要比共享主机...

    探索阿什本:宜居城市的魅力与投资机会

    阿什本,这个名字在许多人心中可能还有些陌生,但当我深入了解这座城市后,它的魅力让我印象深刻。阿什本位于美国弗吉尼亚州,地处华盛顿特区的北部,交通十分便利。这里有着典型的温带气候,四季分明,春天的樱花、夏天的绿荫、秋天的枫叶和冬天的雪景,各自展现着不同的美丽。这样的气候条件使得阿什本不仅是一个宜居的地...

    白丝云:轻盈时尚的服装搭配指南与实用技巧

    白丝云的概念与作用 白丝云,这种看似简单却极具魅力的元素,常常被我们在服装中忽略。它的定义有些抽象,但其实可以说是那些轻盈、透明的织物,像云朵一样飘逸。通常,它由柔软的材质制成,给人一种轻柔、梦幻的感觉。你可以在它的细腻质感中,感受到一种自然的优雅。 我们常常在时尚秀场上看到白丝云,不论是作外搭还是...

    使用PingPE工具提升网络测试与管理效率

    在了解PingPE之前,我想带大家先理清一下它的基本概念和用途。PingPE是一款网络测试工具,它通过发送和接收分组数据来检测网络连接的延迟和丢包率。简单来说,PingPE帮助我们判断网络质量如何,是否存在连接问题。使用PingPE,可以迅速诊断出网络故障,从而节省了排查问题的时间。 它的功能不仅限...