Android 2 个 WebView 片段之间的链接

Android Linking between 2 WebView Fragments

有人知道我如何在 2 个 WebView 片段之间 link 吗? 两个 WebView 片段都使用本地 html 来源。所以我想link给对方 通过内联 HTML href.

的 WebView 片段

我认为 Intent 或 Fragment Interfaces 之类的东西可以在这里工作。但不确切知道如何访问本地 Android 代码的 href 标签。

如果您看到上图 - 解决方案应该是打开 Link WebView 1 并切换到 2nd WebView。它是通过底部导航实现的,因此第一个选项卡 (WebView) 应该切换到第二个选项卡 (WebView),因为它在标签图标上自然工作。

更新

Android 中的这个新 material 设计令人惊叹。 当我想以编程方式切换视图时 - 我不必调用片段事务方法。我只需要这样做:

BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
            navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

现在是魔法:

navigation.setSelectedItemId(R.id.navigation_myView);

这也会同步底部导航状态并加载片段视图。 在我的例子中,我在 JavaScript 桥中调用它。 Android 摇滚朋友。

您需要查看 JavascriptInterface 注释 class。 JavascriptInterface 注释为您提供了一种从 WebView 中的 javascript 调用 Android 方法的方法。

你可以在那里找到大量的教程,但它的工作方式基本上是这样的:

  • 使用您想从 WebView 中的 javascript 调用的方法创建一个 POJO。此方法只能有 String 类型参数。

  • 使用@JavascriptInterface 注解对方法进行注解。

  • 调用 webView.addJavaScriptInterface(pojo, "js") 将您的 POJO 注入 WebView。 (字符串标签是任意的。)

  • 在您的 javascript 中,调用 js.yourMethod() 以调用您的 POJO 上的方法。

所以在你的例子中,当有人点击 webview1 中的按钮时,你通过 javascript 接口调用一个 Android 方法来显示 webview2。