Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello uni-app x
提交
b38141c6
H
hello uni-app x
项目概览
DCloud
/
hello uni-app x
通知
6045
Star
91
Fork
165
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
19
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello uni-app x
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
19
Issue
19
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
b38141c6
编写于
12月 06, 2024
作者:
VK1688
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增 canOpenURL UTS API,可用此API判断url是否可以跳转
上级
7e33f945
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
60 addition
and
23 deletion
+60
-23
uni_modules/uts-openSchema/changelog.md
uni_modules/uts-openSchema/changelog.md
+2
-0
uni_modules/uts-openSchema/readme.md
uni_modules/uts-openSchema/readme.md
+12
-2
uni_modules/uts-openSchema/utssdk/app-android/index.uts
uni_modules/uts-openSchema/utssdk/app-android/index.uts
+15
-4
uni_modules/uts-openSchema/utssdk/app-ios/index.uts
uni_modules/uts-openSchema/utssdk/app-ios/index.uts
+19
-13
uni_modules/uts-openSchema/utssdk/interface.uts
uni_modules/uts-openSchema/utssdk/interface.uts
+2
-1
uni_modules/uts-openSchema/utssdk/web/index.uts
uni_modules/uts-openSchema/utssdk/web/index.uts
+10
-3
未找到文件。
uni_modules/uts-openSchema/changelog.md
浏览文件 @
b38141c6
## 1.1.0(2024-12-06)
-
新增 canOpenURL UTS API,可用此API判断url是否可以跳转
## 1.0.1(2024-11-13)
-
修复 Android 打开部分 schema 时没有跳转到目标应用的 Bug
## 1.0.0(2024-04-25)
...
...
uni_modules/uts-openSchema/readme.md
浏览文件 @
b38141c6
...
...
@@ -12,25 +12,35 @@
1.
安装此插件
2.
在要使用的地方
`import`
导入
```
ts
import
{
openSchema
}
from
'
@/uni_modules/uts-openSchema
'
import
{
openSchema
,
canOpenURL
}
from
'
@/uni_modules/uts-openSchema
'
```
3.
直接调用
`openSchema`
方法:
```
ts
// #ifdef UNI-APP-X
// 使用外部浏览器打开指定URL
openSchema
(
'
https://uniapp.dcloud.io/uni-app-x
'
)
// #ifdef APP-ANDROID
// Android 使用应用商店打开指定App
openSchema
(
'
market://details?id=com.tencent.mm
'
)
// Android 打开地图坐标
openSchema
(
'
androidamap://viewMap?sourceApplication=Hello%20uni-app&poiname=DCloud&lat=39.9631018208&lon=116.3406135236&dev=0
'
)
// 可以先用canOpenURL判断是否安装了地图软件
if
(
canOpenURL
(
'
androidamap://
'
))
{
openSchema
(
'
androidamap://viewMap?sourceApplication=Hello%20uni-app&poiname=DCloud&lat=39.9631018208&lon=116.3406135236&dev=0
'
)
}
else
{
console
.
log
(
'
未安装高德地图
'
)
}
// #endif -->
// #ifdef APP-IOS
// 打开 AppStore 到搜索页
openSchema
(
'
itms-apps://search.itunes.apple.com//WebObjects//MZSearch.woa/wa/search?media=software<erm=
'
)
// 打开 iOS 地图坐标
openSchema
(
'
http://maps.apple.com/?q=Mexican+Restaurant&sll=50.894967,4.341626&z=10&t=s
'
)
// #endif -->
// #endif -->
```
...
...
uni_modules/uts-openSchema/utssdk/app-android/index.uts
浏览文件 @
b38141c6
import Intent from 'android.content.Intent'
import Uri from 'android.net.Uri'
import { OpenSchema } from '../interface.uts'
import { OpenSchema
, CanOpenURL
} from '../interface.uts'
export const openSchema
: OpenSchema = function (url
: string) {
if (
typeof url === 'string' && url.length > 0
) {
export const openSchema
: OpenSchema = function (url
: string) {
if (
canOpenURL(url)
) {
const context = UTSAndroid.getUniActivity()!
const uri = Uri.parse(url)
const intent = new Intent(Intent.ACTION_VIEW, uri)
...
...
@@ -11,6 +11,17 @@ export const openSchema: OpenSchema = function (url: string) {
intent.setData(uri)
context.startActivity(intent)
} else {
console.error('url param ERROR:', JSON.stringify(url))
console.error('url param Error:', JSON.stringify(url))
}
}
export const canOpenURL : CanOpenURL = function (url : string) {
if (typeof url === 'string' && url.length > 0) {
const context = UTSAndroid.getUniActivity()!
const uri = Uri.parse(url)
const intent = new Intent(Intent.ACTION_VIEW, uri)
return intent.resolveActivity(context.packageManager) != null
} else {
return false
}
}
uni_modules/uts-openSchema/utssdk/app-ios/index.uts
浏览文件 @
b38141c6
import { OpenSchema } from '../interface.uts'
import { OpenSchema
, CanOpenURL
} from '../interface.uts'
export const openSchema: OpenSchema = function(url: string): void {
if (typeof url == 'string' && url.length > 0) {
let uri = new URL(string = url)
if (uri != null && UIApplication.shared.canOpenURL(uri!)) {
UIApplication.shared.open(uri!, options = new Map<UIApplication.OpenExternalURLOptionsKey, any>(), completionHandler = null)
}else {
console.error('url param Error: ', url)
}
}else {
console.error('url param Error: ', url)
}
}
\ No newline at end of file
export const openSchema : OpenSchema = function (url : string) : void {
if (canOpenURL(url)) {
let uri = new URL(string = url)
UIApplication.shared.open(uri!, options = new Map<UIApplication.OpenExternalURLOptionsKey, any>(), completionHandler = null)
} else {
console.error('url param Error: ', url)
}
}
export const canOpenURL : CanOpenURL = function (url : string) : boolean {
if (typeof url == 'string' && url.length > 0) {
let uri = new URL(string = url)
if (uri != null && UIApplication.shared.canOpenURL(uri!)) {
return true
}
}
return false
}
uni_modules/uts-openSchema/utssdk/interface.uts
浏览文件 @
b38141c6
export type OpenSchema = (url: string) => void
export type OpenSchema = (url : string) => void
export type CanOpenURL = (url : string) => boolean
uni_modules/uts-openSchema/utssdk/web/index.uts
浏览文件 @
b38141c6
import { OpenSchema } from '../interface.uts'
import { OpenSchema
, CanOpenURL
} from '../interface.uts'
export const openSchema: OpenSchema = function(url: string): void {
location.href = url;
export const openSchema : OpenSchema = function (url : string) : void {
location.href = url;
}
export const canOpenURL : CanOpenURL = function (url : string) : boolean {
if (url != "") {
return true;
}
return false;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录