javascript - 如何从fragment中的webview调用JavaScript?

标签 javascript android android-fragments webview

下面的代码,我用来在 fragment 中加载 webview,我想从 webview 调用 JavaScript 函数,但下面的代码不起作用。

public class MainActivity extends ActionBarActivity
{
    public void loadUrlInWebView(String url,String positon)
        {
        WebViewFragment fragment =  new WebViewFragment();
        Bundle data = new Bundle();
        data.putString("url",url);
        fragment.setArguments(data);
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();
        }

        var url ="javascript:mobileApp.openLoginMenu()";
            loadUrlInWebView(url,null);
}

public class WebViewFragment extends Fragment{
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
        url = getArguments().getString("url");
        View rootView = inflater.inflate(R.layout.activity_main, container, false);
        webView = (WebView) rootView.findViewById(R.id.webView);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.addJavascriptInterface(new JsInterface(getActivity()),"AndroidJSObject");
        webView.loadUrl(url);
        webView.setWebViewClient(new WebViewClient()
        {
            public boolean shouldOverrideUrlLoading(WebView view, String url)
            {
            view.loadUrl(url);
            return true;
            }
        });
        return rootView;
        }
}

最佳答案

要在 Android 中调用 javascript,您可以调用 addJavascriptInterface()

有关更多说明,请点击此链接 Building Web Apps in WebView .

要记住的是,

当您想从 javascript 方法调用 android 方法时,应根据您在调用 addJavascriptInterface() 时提供的字符串名称来调用该方法名称 正是在你的情况下,你的 javascript 中是这样的

AndroidJSObject.yourmethod

JavaScript 文件内部。

关于javascript - 如何从fragment中的webview调用JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29764790/

相关文章:

javascript - 根据另一个 Div 的存在调整一个 Div 的样式?

javascript - Jquery - 翻转时淡入/淡出闪烁

javascript - React Native timemixin 取消定时器超时

javascript - "Error: A reference already exists for the specified id"如何隐藏/修复此警报?

android - 使用带有 ChangeImageTransform 的共享元素转换在两个 Activity 之间为 ImageView 设置动画

android - 抽屉导航,ResourceNotFoundException

javascript - 更改元素高度在第二次按下时不起作用

Android滑动 fragment 而不是菜单

android - 如何在我的 fragment 和适配器中添加更多负载

android - 如何仅将图像添加到 listFragment 第一项?