如何使用 Ionic Capacitor 启用捏缩放?
Posted
技术标签:
【中文标题】如何使用 Ionic Capacitor 启用捏缩放?【英文标题】:How can I enable pinch zooming with Ionic Capacitor? 【发布时间】:2021-10-11 12:20:27 【问题描述】:我正在使用 Capacitor 构建一个应用程序,以将我的网站作为应用程序的主要部分嵌入其中,其中有些部分我希望能够进行缩放(例如照片库)。我已经 found answers 关于 android WebViews 和使用 maximum-scale
设置的 html meta
标签,就像这样,但是在更改元标签后,webview 仍然不支持捏缩放。有没有办法覆盖电容器设置以允许缩放?
【问题讨论】:
【参考方案1】:我从GitHub issue 获得一些线索后找到了答案的电容器芯,所以我找到了一种使用插件的方法。
编写以下ZoomPlugin
类允许我通过bridge
属性访问WebView 并修改缩放设置:
package com.example.app;
import com.getcapacitor.Plugin;
import com.getcapacitor.annotation.CapacitorPlugin;
@CapacitorPlugin(name = "Zoom")
public class ZoomPlugin extends Plugin
@Override
public void load()
this.bridge.getWebView().getSettings().setBuiltInZoomControls(true);
// disables zoom in/zoom out buttons in the webview, to only allow pinch to zoom
this.bridge.getWebView().getSettings().setDisplayZoomControls(false);
写好插件后,在MainActivity
类中注册:
package com.example.app;
import android.os.Bundle;
import com.getcapacitor.BridgeActivity;
public class MainActivity extends BridgeActivity
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
registerPlugin(ZoomPlugin.class);
现在,只要您的meta
标签设置正确,捏到缩放应该可以工作,如其他答案中所述:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2.5" />
其中的重要部分是maximum-scale=2.5
,它将缩放限制设置为 2.5 倍。您可以通过将maximum-scale
设置为与initial-scale
相同来禁用页面缩放。
【讨论】:
是否可以使用上面的插件参考接受cookie或传递WebView的标头?以上是关于如何使用 Ionic Capacitor 启用捏缩放?的主要内容,如果未能解决你的问题,请参考以下文章
将 Ionic Native / Cordova 插件与 Ionic (React) & Capacitor 一起使用的正确方法是啥?
在 Android 模拟器上运行 Ionic4/Capacitor 时如何调试 .ts 文件
Ionic 5 / Capacitor:如何确定应用程序是在浏览器中运行还是编译为本机应用程序?
如何在 Android-studio 或移动设备上运行 ionic-capacitor 应用程序?
Ionic4 watchPosition 和 getCurrentPosition 的地理位置与 Ionic/Capacitor 不准确