URL загрузки WebView во фрагменте из другого класса
Я хочу вызвать метод для загрузки URL-адреса в классе фрагмента из другого класса, но я получаю нулевое значение для веб-просмотра. Ниже мой код.
public class WebViewFragment extends Fragment
{
String url;
Context context;
public WebView webViewSite;
public WebViewFragment()
{
}
public void init(String currentURL, Context context1)
{
url = currentURL;
context = context1;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.activity_webview_site, container, false);
webViewSite = (WebView)view.findViewById(R.id.webViewSite);
webViewSite.getSettings().setJavaScriptEnabled(true);
webViewSite.addJavascriptInterface(new JsInterface(context),"AndroidJSObject");
webViewSite.setWebViewClient(new SwAWebClient());
webViewSite.setWebChromeClient(new SwAWebChromeClient());
loadURL(Configuration.MOBILE_SITE_URL);
return view;
}
public void loadURL(String url)
{
webViewSite.loadUrl(url, Configuration.appRequestHeaders);
}
}
из класса ниже я вызываю метод loadURL, но для этого я получаю нулевой экземпляр web view.
public class JsInterface
{
Handler myHandler;
private Context mContext;
public JsInterface(Context c)
{
mContext = c;
myHandler = new Handler();
}
@JavascriptInterface
public void loadFromBaseUrl()
{
myHandler.post(new Runnable()
{
@Override
public void run()
{
Toast.makeText(mContext,"Please Wait",Toast.LENGTH_SHORT).show();
new WebViewFragment().loadURL(Configuration.MOBILE_SITE_URL);
}
});
}
}
1 ответ
new WebViewFragment()
делает ваш веб-просмотр нулевым. Вместо этого вы можете сделать статический метод loadURL
лайк:
public static void loadURL(String url)
{
webViewSite.loadUrl(url, Configuration.appRequestHeaders);
}
и назовите это как -
WebViewFragment.loadURL(Configuration.MOBILE_SITE_URL);