相关疑难解决方法(0)

Android:如何从webview中选择文本

我希望允许用户从webview中选择一些文本,它需要作为文本消息发送.请找到选择文本并复制到剪贴板并从剪贴板中提取的方法.我看到很多例子,但没有任何帮助我真的...... TIA


使用@ orangmoney52链接中提供的代码进行编辑.以下更改

getmethod的第二个参数和invoke方法的第二个参数.如果我给null那里会有警告......哪一个是正确的?

 public void selectAndCopyText() {
     try {
         Method m = WebView.class.getMethod("emulateShiftHeld", Boolean.TYPE); 
            m.invoke(BookView.mWebView, false); 
        } catch (Exception e) {
            e.printStackTrace();
            // fallback
            KeyEvent shiftPressEvent = new KeyEvent(0,0,
                 KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT,0,0);
            shiftPressEvent.dispatch(this);
        }

}
Run Code Online (Sandbox Code Playgroud)

得到此错误:

 05-26 16:41:01.121: WARN/System.err(1096): java.lang.NoSuchMethodException: emulateShiftHeld  
Run Code Online (Sandbox Code Playgroud)

android copy-paste webview

14
推荐指数
3
解决办法
3万
查看次数

如何选择和复制未附加到活动的视图中的文本?

我正在创建一个像这样的"浮动"WebView:

public class MyService extends Service {
    public static WindowManager windowManager;
    public static LinearLayout mainView;
    public WebView webView;

    @Override
    public void onCreate() {
        super.onCreate();

        windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
        LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);

        // main view
        mainView = (LinearLayout) inflater.inflate(R.layout.popup, null);
        WindowManager.LayoutParams mainViewParams = new WindowManager.LayoutParams(
                LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.TYPE_PHONE,
                WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
                PixelFormat.TRANSLUCENT);

        windowManager.addView(mainView, mainViewParams);

        // main view - web views
        webView = (WebView) mainView.findViewById(R.id.webView1);
        webView.setWebViewClient(new WebViewClient());
    }
}
Run Code Online (Sandbox Code Playgroud)

主视图是包含WebView的LinearLayout.创建服务时会显示主视图,并且不会附加到任何活动.由于WindowManager.LayoutParams.TYPE_PHONE旗帜,视图可以漂浮在其他活动之上.

问题是,我无法选择WebView中显示的任何文本.如果我按住某个单词,则选择显示然后会很快消失.用于复制文本等的操作栏不会显示,也不会显示Marshmallow中的上下文菜单.

这是否发生是因为我的观点没有附加到活动?我曾经使用活动和文本选择来实现我的浮动视图工作正常,但我最近改为这种"无活动"方法,因为当我显示/隐藏时我不想处理所有不必要的活动生命周期管理视图.

如何获取文本选择(在我的WebView中)?

编辑:此问题不是WebView特定的.我在主视图中添加了一个EditText,我也无法从中选择文本.

编辑2 …

android view webview android-activity

10
推荐指数
1
解决办法
619
查看次数

在WebView中选择文本?

浏览器通过调用public void emulateShiftHeld()SDK中隐藏的WebView上的方法来完成此操作.
还有其他选择吗?

android

6
推荐指数
1
解决办法
9457
查看次数

标签 统计

android ×3

webview ×2

android-activity ×1

copy-paste ×1

view ×1