Android 如何从webview共享当前加载的URL
如何在Android 如何从webview共享当前加载的URL,android,webview,share-intent,Android,Webview,Share Intent,如何在webview中获取和共享当前URL?我的共享有效,但不共享当前加载的URL 这是我在WebView private String mTrackUrlChange; private WebViewClient webViewClient = new WebViewClient(){ @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.o
webview
中获取和共享当前URL?我的共享有效,但不共享当前加载的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);
}
我的共享有效,但不共享当前加载的URL
你还没有解释这意味着什么。然而,您的代码存在一些问题,这些问题可能导致您的问题
首先,您正在构建Intent
并过早地调用setShareIntent()
mTrackUrlChange
在oncreateoptions menu()
中将为null
,因为您的WebView
刚刚开始加载网页。构建Intent
并在onPageFinished()
内部调用setsharecontent()
,而不是在oncreateoptions菜单()内部调用
除此之外,由于您正在设置EXTRA\u STREAM
,因此额外的内容需要是Uri
,而不是字符串
,并且MIME类型需要是实际内容的MIME类型(例如,网页的文本/html
)。另外,您多次调用setShareContent()
,这是不必要的。我的意思是它可以工作,但当我使用share时,它不包含URL@kielou:请看我答案的第二段。它不允许我在onPageFinished()
@kielou:为什么不?您需要进行一些其他更改,例如将mShare
设置为一个字段,而不是oncreateoptions菜单()中的局部变量。演示如何从创建选项菜单()上的以外的位置调用setShareContent()
。