PhoneRTC:开始时将数据从 Java 发送到 Javascript

Posted

技术标签:

【中文标题】PhoneRTC:开始时将数据从 Java 发送到 Javascript【英文标题】:PhoneRTC: Send data from Java to Javascript on start 【发布时间】:2015-04-28 23:17:41 【问题描述】:

我已将 phonertc 示例应用程序作为我的 android 本机 Java 应用程序的一部分。在我的家庭活动中,我有一个按钮,可以在单击时启动 phonertc 示例应用程序。这是按钮的作用:

Intent i = new Intent(this, CordovaApp.class);
startActivity(i);

在 CordovaApp.class 中,我有以下来自 phonertc 示例应用程序的代码:

public class CordovaApp extends CordovaActivity

    @Override
    public void onCreate(Bundle savedInstanceState)
    
        super.onCreate(savedInstanceState);
        super.init();
        // Set by <content src="index.html" /> in config.xml
        loadUrl(launchUrl);
    

这会在单独的活动中加载示例 phonertc 应用程序。我想在加载时将我自己的一些数据从 Java 发送到示例 phonertc 应用程序。

除了插件的通信之外,我的目标是在 phonertc 应用程序和我的 java android 代码之间进行通信。我该怎么做?

phonertc 应用程序在 webview 中加载后有什么方法调用我的 java android 代码的函数吗?

请帮忙。

【问题讨论】:

您想在混合应用程序中从 HTML/javascript 端调用 Java 函数,对吗?如果是这样,我会解释。 是的,反之亦然。我知道如何在简单的 webview 中进行操作,但在使用 cordova plus phonertc 插件的情况下无法理解 我不知道 phonertc 案例,但我可以解释例如在 cordova 应用程序范围内单击 HTML 按钮时启动 Android 意图。但如果你知道,没关系:) 好的,那你能解释一下cordova app scope吗,我自己做phonertc 【参考方案1】:

无论您的 wevbiew 被命名为什么,请使用 addJavascriptInterface 方法。它基本上使Java函数能够被Javascript端访问。第一个参数通常是一个接口类,但您可以简单地使用相同的活动。

cordova_webview.addJavascriptInterface(this, "mainHandler");

假设您要运行例如以下活动更改方法:

public void changePage()           
    Intent intent = new Intent(MainActivity.this, 
                SecondActivity.class);
    startActivity(intent); 

现在在 HTML 页面上,你可以通过 myHandler 接口访问它;

<button onclick="window.mainHandler.changePage()">
    Change Page
</button>

你看,Cordova 与这个简单的 Android 结构没有任何不同。

【讨论】:

请把html和javascript代码中的myHandler改为mainHandler

以上是关于PhoneRTC:开始时将数据从 Java 发送到 Javascript的主要内容,如果未能解决你的问题,请参考以下文章

单击通知时将数据发送到活动?

将 PhoneRTC 与 Worklight 一起使用

在获取数据时将变量发送到 PHP 脚本

Phonertc 演示仅在通话开始时显示空白屏幕

后端更新时将数据发送到前端[重复]

提交时将对象列表从视图发送到控制器