Открыть изображение из WebView в полноэкранном режиме - PullRequest
2 голосов
/ 15 марта 2012

, если в html-содержимом веб-просмотра мало тегов <img>, возможно ли открыть это изображение в полноэкранном режиме в новом действии, когда пользователь нажмет на изображение в веб-просмотре?

1 Ответ

3 голосов
/ 15 марта 2012

Да, это так. в основном можно вызвать любой родной код Android из WebView. Вы определяете методы, которые вы хотите предоставить для вызова из класса WebView в классе, передаете экземпляр этого класса в WebView и с тех пор методы становятся доступными, как методы javascript. вот пример (это копия, вставленная из другого ответа; вам нужно заменить намерение видео на намерение отображения изображения):

Вызов собственного кода из веб-представления:
При создании веб-представления добавьте интерфейс javascript (в основном класс java, методы которого будут вызываться через javascript в веб-представлении).

JavaScriptInterface jsInterface = new JavaScriptInterface(this);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(jsInterface, "JSInterface");

Определение самого класса интерфейса javascript (это примерный класс, который я взял из другого моего ответа и открывает видео в собственном намерении)

public class JavaScriptInterface {
    private Activity activity;

    public JavaScriptInterface(Activity activiy) {
        this.activity = activiy;
    }

    public void startVideo(String videoAddress){
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.parse(videoAddress), "video/3gpp"); // The Mime type can actually be determined from the file
        activity.startActivity(intent);
    }
}

Теперь, если вы хотите вызвать этот код из HTML страницы, вы предоставляете следующий метод:

<script>
  function playVideo(video){
    window.JSInterface.startVideo(video);
  }
</script>

Так что вам нужно добавить соответствующий метод в JSInterface и вызвать код из Веб-приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...