请看描述
- 发布:2023-03-29 20:17
- 更新:2023-04-06 14:23
- 阅读:345
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 13.2.1
HBuilderX类型: 正式
HBuilderX版本号: 3.7.9
手机系统: Android
手机系统版本号: Android 11
手机厂商: 华为
手机机型: p20
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
请看描述
请看描述
实际结果:
请看描述
请看描述
bug描述:
使用官方提供js
<script type="text/javascript" src="https://unpkg.com/@dcloudio/uni-webview-js@0.0.3/index.js"></script>
下面代码 ios 可以执行,安卓无效
document.addEventListener('UniAppJSBridgeReady', function() {
alert(1111111111)
uni.webView.redirectTo({url: '/pages/checkout/success/success?order_id={{ order_id }}'});
});
有几种可能的解决方法:
在 Android 上使用自定义 URL Scheme。在你的 app 中注册一个自定义 URL Scheme,例如 myapp://,然后在 WebView 中跳转链接时,将链接改为 myapp://xxxx 形式。这样,当用户在 Android 上点击链接时,系统会自动打开你的 app。
使用 JavaScript 和 WebViewBridge。WebViewBridge 是一个开源库,它提供了一个可以让 JavaScript 和原生代码互相通信的接口。你可以在 WebView 中注入 JavaScript 代码,当用户点击链接时,通过 JavaScript 调用原生代码来打开你的 app。
使用 Universal Links。Universal Links 是一个苹果推出的技术,它可以让你的 app 和网页之间实现无缝跳转。你需要在你的 app 和网站中都配置好 Universal Links,然后在 WebView 中跳转链接时,使用 Universal Links 跳转。这样,无论用户在哪个平台上点击链接,都可以正确地跳转回你的 app。不过需要注意的是,Universal Links 只支持 iOS 9 及以上版本。
发现这是由于 Android 与 iOS 在处理 URI scheme 不同所导致的。相信大家都知道,URI scheme 是一种标识应用程序、服务或协议的字符串。在 Android 中,可以通过配置 Activity 的 intent-filter ,将某个 URI scheme 与 Activity 关联起来,实现从浏览器跳转到 APP。而在 iOS 中,通过配置 Info.plist 中的 URL types 来关联。由于安卓的限制,导致部分 URI scheme 无法成功跳转回 APP。
但是,小编的好消息是,我们可以通过 Universal Link 来解决这个问题。Universal Link 可以帮助我们在 iOS 和 Android 上同时处理深度链接,大大提高用户使用体验。