作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面的代码,我用来在 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/
我是一名优秀的程序员,十分优秀!