gpt4 book ai didi

android - 将 URL 从 WebView 传递到 ShareActionProvider?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:30:41 24 4
gpt4 key购买 nike

我想在我的 WebView 中获取用户用户所在的任何页面,并允许他们与 FaceBook/等共享 URL 作为 ACTION_SEND Intent 。

我试过了,但显然该 URL 不存在于 onCreateOptionsMenu 中。我怎样才能将它移动到 onOptionsItemsSelected?

private ShareActionProvider mShareActionProvider;
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub


return super.onOptionsItemSelected(item);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
MenuItem item = menu.findItem(R.id.menu_item_share);
mShareActionProvider = (ShareActionProvider)item.getActionProvider();
mShareActionProvider.setShareHistoryFileName(
ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
mShareActionProvider.setShareIntent(createShareIntent());
return true;
}
private Intent createShareIntent() {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT,
web.getUrl());
return shareIntent;
}

最佳答案

上面的代码不起作用,因为 onCreateOptionsMenu 仅调用一次,即第一次显示选项菜单时。

解决这个问题很容易。当 onOptionsItemSelected 被调用时,我们正在构建我们的 Intent。这是选择膨胀菜单的任何资源时。如果所选项目是共享资源,则执行 shareURL,现在构建并启动 Intent。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

@Override
public final boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item_share:
shareURL();
}
return super.onOptionsItemSelected(item);
}

private void shareURL() {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, web.getUrl());
startActivity(Intent.createChooser(shareIntent, "Share This!"));
}

我没有测试上面的代码示例。既不在实际设备上,也不在 Java 编译器中。尽管如此,它应该可以帮助您解决问题。

关于android - 将 URL 从 WebView 传递到 ShareActionProvider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14666998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com