1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import { InAppBrowser, DefaultWebViewOptions } from "@capacitor/inappbrowser";
- import { Browser } from "@capacitor/browser";
- import { openGaoDe } from "./appLauncher";
- export const openDapp = async (url, params, open = false) => {
- // 将对象参数转换为 URL 查询字符串
- const queryString = new URLSearchParams(params).toString();
- const fullUrl = queryString?`${url}?${queryString}`:url;
- // 判断是web 还是 ios
- if (Capacitor.getPlatform() === "web") {
- window.open(fullUrl, "_blank");
- return;
- }
- if(open){
- await Browser.open({ url: fullUrl });
- return
- }
- // dappView
- await InAppBrowser.addListener(
- "browserPageNavigationCompleted",
- async (data) => {
- if (data.url.indexOf("go=gaode") > -1) {
- const params = new URLSearchParams(data.url);
- const lat = params.get("latitude");
- const lan = params.get("longitude");
- const address = params.get("address");
- await openGaoDe(lat, lan, address);
- }
- }
- );
- await InAppBrowser.addListener("browserClosed", async () => {
- InAppBrowser.removeAllListeners;
- });
- await InAppBrowser.addListener(
- "browserPageNavigationCompleted",
- async (data) => {
- if (data.url.indexOf("go=gaode") > -1) {
- const params = new URLSearchParams(data.url);
- const lat = params.get("latitude");
- const lan = params.get("longitude");
- const address = params.get("address");
- await openGaoDe(lat, lan, address);
- }
- }
- );
- await InAppBrowser.openInWebView({
- url: fullUrl,
- options: {
- ...DefaultWebViewOptions,
- showURL: false,
- showToolbar: false,
- androidMixedContentMode: "always_allow", // Android
- iosAllowsInsecureHTTPLoads: true, // iOS (部分版本支持)
- iosDisallowOverScroll: false
- },
- });
- };
|