【问题标题】:How to cast a mobile web page on Android?如何在Android上投射移动网页?
【发布时间】:2016-10-19 22:30:04
【问题描述】:

我正在为 Chrome 浏览器开发 Chromecast 的 Hello World app,但是当我在我的 Android 设备上测试它时遇到了障碍。据我所知,没有办法将 Chrome 标签本身投射到 Android 上。唯一的选择是投射整个屏幕。

我找到了一个旧的reddit thread 和一个更旧的Google Cast Help Forum thread。这两种来源都让人觉得可以在 Android 上投射移动网络标签。

这真的很难相信,因为我看不出移动设备上的网页有什么内在的东西会阻止它与 Cast 兼容。我错过了什么?

目前在移动设备上投射的状态似乎是:

  1. 从移动 Chrome 浏览器投射音频/视频内容
  2. 从原生移动应用投射
  3. 投射整个设备的屏幕

我希望实现的具体用例是一个基于网络的游戏,玩家可以坐在电视前的沙发上。他们通过访问 Chrome 中的网站而不是下载应用程序来玩游戏。如果他们在笔记本电脑上,它会工作得很好,因为桌面 Chrome 能够投射一个特定的选项卡,电视显示一些应用程序,比如 Hello World 示例。但这在 Android 上是不可能的。

是否有人知道投射移动网页的方法或任何即将推出的计划?

【问题讨论】:

标签: javascript android html google-chrome google-cast


【解决方案1】:

您可以使用Webview 来完成。它将自动仅考虑移动视图。试试这个:像这样制作main.xml 文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" 
android:layout_gravity="center">
<WebView
    android:id="@+id/webView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center" /></LinearLayout>

现在开始上课:

WebViewSampleActivity

    public class WebViewSampleActivity extends Activity {
     WebView wb;
    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return false;
        }
    }
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);      
        wb=(WebView)findViewById(R.id.webView1);        
        wb.getSettings().setJavaScriptEnabled(true);
        wb.getSettings().setLoadWithOverviewMode(true);
        wb.getSettings().setUseWideViewPort(true);
        wb.getSettings().setBuiltInZoomControls(true);
        wb.getSettings().setPluginState(WebSettings.PluginState.ON);
        wb.getSettings().setPluginsEnabled(true);           
        wb.setWebViewClient(new HelloWebViewClient());
        wb.loadUrl("http://www.yourUrl.com");        
    }
}

【讨论】:

  • 那么 webview 需要用户下载一个会加载网页的 Android 应用?网页是否使用 Cast API 的桌面 Chrome 功能运行?如果它只是 Android 应用程序中的移动 Chrome,我已经做了很多工作来获得相同的损坏行为。
  • 是的,它将允许用户下载应用程序...它将像其他应用程序一样在 google play 中可用。
  • 我不关心 webview 是在桌面还是移动 Chrome 环境中运行。不同之处在于您不能从移动设备进行投射,这正是这个问题试图弄清楚的。
【解决方案2】:

创建一个 webview 并注入一个 url。这么简单的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-30
    • 2019-11-25
    • 2015-12-15
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    相关资源
    最近更新 更多