0

В настоящее время в моем UWP приложение Я получаю Text-выбор в WebView черезОкна UWP - WebView выбран текст

DataPackage package = await webview.CaptureSelectedContentToDataPackageAsync(); 

и зачитать строку с

await package.GetView().GetTextAsync(); 

Это прекрасно работает на ПК, но не на телефоне.

Что было бы лучшим способом сделать это по телефону? Я попытался ввести javascript в

window.getSelection().toString(); or document.selection.createRange().text; 

но это не сработало, или я использовал его неправильно.

Любая помощь будет оценена по достоинству.

Update1:

Изменен код ниже с тем результатом, что он по-прежнему работает только на ПК, но не по телефону:

string texttoget = await mainwebview1.InvokeScriptAsync("eval", new string[] { "document.getSelection().toString();" }); 
    if (texttoget != null) 
    { 
     Debug.WriteLine("Text To get is: " + texttoget.ToString().Trim()); 
    } 
    else 
    { 
     MessageDialog msgbox3 = new MessageDialog("Please select or mark the text you would like to get."); 
     await msgbox3.ShowAsync(); 
    } 

ответ

0

Я хотел бы использовать

string text = webview.InvokeScriptAsync("eval", "document.getSelection()"); 

Помните, что вы работаете в браузере в момент получения выбора, так что await package.GetView().GetTextAsync(); будет неустойчивым на разных устройствах s. Вышеупомянутый метод использует javascript, который должен быть равен каждому устройству.

Reference Documentation

+0

На самом деле я сделал получить его работу с СТРОКА текстом = ждать mainwebview1.InvokeScriptAsync ("Eval", новая строка [] { "document.getSelection() ToString();".}); Но это снова работает только на ПК, но не на телефоне. Любые комментарии? – SunnySonic

+0

@SunnySonic честно, я догадывался. Без фактического просмотра кода, ошибок и т. Д., Я не знаю, сможет ли кто-нибудь ответить на вопрос. У меня есть приложение, которое широко использует веб-просмотр как на телефоне, так и на рабочем столе. –

+0

Спасибо. Обновлен мой ответ с текущим кодом. Поведение отлично работает на компьютере, но по телефону оно всегда равно нулю. – SunnySonic

Смежные вопросы