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的主要内容,如果未能解决你的问题,请参考以下文章