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。
有人知道我如何在 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。