如何在webview
中获取和分享当前网址?我的共享有效,但不共享当前加载的URL。
以下是WebView
private String mTrackUrlChange;
private WebViewClient webViewClient = new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
frameLayout.setVisibility(View.VISIBLE);
mTrackUrlChange=url;
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
mTrackUrlChange = url;
}
};
我的分享:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
MenuItem shareItem = menu.findItem(R.id.action_share);
ShareActionProvider mShare = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem);
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, mTrackUrlChange);
mShare.setShareIntent(shareIntent);
shareIntent.putExtra(Intent.EXTRA_STREAM, mTrackUrlChange);
mShare.setShareIntent(shareIntent);
return super.onCreateOptionsMenu(menu);
}
答案 0 :(得分:0)
我的分享有效,但不分享当前加载的网址
你没有解释这意味着什么。但是,您的代码存在一些问题,可能会导致您遇到的问题。
首先,您要构建dbms_output.enable
并过早调用set serveroutput off
。 Intent
中的setShareIntent()
将mTrackUrlChange
,因为您的null
几乎不会开始加载网页。建立onCreateOptionsMenu()
并在WebView
内拨打Intent
,而不是在setShareIntent()
内。
除此之外,由于您要设置onPageFinished()
,因此额外需要为onCreateOptionsMenu()
,而不是EXTRA_STREAM
,并且MIME类型必须是实际内容的MIME类型(例如,Uri
用于网页)。此外,您多次致电String
,这是不必要的。