firefox插件webextensions-HtmlPage和AndroidApp之间使用GeckoView的消息



不幸的是,我使用的平台上没有WebView,因此,我无法利用JavascriptInterface的简单性从我的网页与我的应用程序进行交互。

有没有一个完整的(直接的(例子来解释如何使用Geckoview与我的Android应用程序交互页面?

我尝试了这个页面上的步骤(以及其他步骤(:

https://firefox-source-docs.mozilla.org/mobile/android/geckoview/consumer/web-extensions.html

坦率地说,我从来没有见过一个页面隐藏这么多这样的细节。

Html页面就这么简单,托管(比方说(在";http://example.com/x.html">

<html>
<script>
function appToPage(s)
{
log('received:' + s);
}
function pageToApp(s)
{
// do something to send s to app
log('sent:' + s);
}
function log(s)
{
var x = document.getElementById('x');
x.innerHTML += '<br>' + s;
}

var i = 0;
</script>
<body>
<input type=button onclick="pageToApp('helloFromPage' + (i++))" value="SEND">
<div id="x"></div>
</body>
</html>
<script>
log('started');
</script>

安卓方面:

public class MainActivity extends AppCompatActivity
{
protected void onCreate(Bundle savedInstanceState)
{
...
//all the stuff needed for GeckoView and extensions
geckoSession.loadUri("http://example.com/x.html");
...
}

// when some user press some button in the browser
public void onSendButtonClick()
{
// do somenthing to call appToPage("helloFromApp");
}
// this should be called when a message arrives
public void onMessageFromPage(String s)  // or whatever object as parameter (JSON, for example)
{
Log.d("msgFromPage", s)
}
...
}      

我还使用了一个月前的Geckoview。要与您的网站内容进行交互,您必须使用网络扩展。有两种方法:

  1. 消息
  2. 端口消息

我正在分享一个示例链接:https://searchfox.org/mozilla-central/source/mobile/android/examples

最新更新