如何使用离子电容器启用捏合缩放?
How can I enable pinch zooming with Ionic Capacitor?
我正在使用 Capacitor 构建一个应用程序,以将我的网站嵌入到应用程序的主要部分,其中有些部分我希望能够缩放(例如照片库)。我已经 found answers 关于 Android WebViews 和 HTML meta
标签使用 maximum-scale
设置,就像这样,但是在更改元标签之后,webview 仍然不支持双指缩放。有没有办法覆盖电容器设置以允许缩放?
我从 GitHub issue 那里获得一些线索后找到了答案,他们修改了 Capacitor BridgeActivity
class 代码以更改 WebView 初始化,但我真的不想这样做修改可能自动生成或属于电容器核心的代码,所以我找到了一种使用插件的方法。
写下面的ZoomPlugin
class允许我通过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
class中注册:
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
相同来禁用页面缩放。
我正在使用 Capacitor 构建一个应用程序,以将我的网站嵌入到应用程序的主要部分,其中有些部分我希望能够缩放(例如照片库)。我已经 found answers 关于 Android WebViews 和 HTML meta
标签使用 maximum-scale
设置,就像这样,但是在更改元标签之后,webview 仍然不支持双指缩放。有没有办法覆盖电容器设置以允许缩放?
我从 GitHub issue 那里获得一些线索后找到了答案,他们修改了 Capacitor BridgeActivity
class 代码以更改 WebView 初始化,但我真的不想这样做修改可能自动生成或属于电容器核心的代码,所以我找到了一种使用插件的方法。
写下面的ZoomPlugin
class允许我通过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
class中注册:
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
相同来禁用页面缩放。