更新记录
1.0.0(2023-11-12)
发布1.0.0版本
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 12.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
Marcent-WebviewModule
安卓原生webview(js调用),解决uni自带webview返回键被网页h5占用导致返回键监听无效、返回就退出App的问题,支持打开各种网页h5。
本插件是js调用的形式,如需以组件式(直接嵌入到vue文件中的html部分)的形式使用原生webview插件,请使用另外一个插件:组件式原生webview
注意事项
本插件是 uniapp 原生插件,使用前需学习 uniapp 原生插件使用方法,官方教程:uni原生插件使用教程
使用示例
const MarcentWebviewModule = uni.requireNativePlugin("Marcent-WebviewModule")
MarcentWebviewModule.open(params, callback)
请求参数说明
params
参数 | 类型 | 必传 | 说明 |
---|---|---|---|
url | String | 是 | 要打开的链接网址。 |
title | String | 否 | 默认为跳转网页的标题。 |
needNav | Boolean | 否 | 默认true,是否显示导航条。 |
callback
插件通过此回调函数,返回一个对象
参数 | 类型 | 必传 | 说明 |
---|---|---|---|
code | int | 是 | 状态编码。 |
msg | String | 是 | 编码描述。 |
code、code对应枚举
code | msg |
---|---|
200 | 成功打开web |
500 | 错误提醒 |
201 | 返回上一页 |
202 | 退出web |
示例
<template>
<view class="main">
<input class="in" placeholder="请输入网址" v-model="params.url" />
<input class="in" placeholder="请输入标题" v-model="params.title" />
<radio-group @change="onNeedNav">
<radio class="mg-r-12" value="1" :checked="!params.needNav">关闭导航</radio>
<radio value="2" :checked="params.needNav">开启导航</radio>
</radio-group>
<button class="btn" type="primary" @tap="go">打开</button>
<view class="info">
参数:
{{ JSON.stringify(params) }}
</view>
</view>
</template>
<script>
const MarcentWebviewModule = uni.requireNativePlugin("Marcent-WebviewModule")
export default {
data() {
return {
params: {
url: '',
title: '',
needNav: true
}
};
},
methods: {
go() {
MarcentWebviewModule.open(this.params, res => {
console.log('插件返回', res);
})
},
onNeedNav(e) {
this.params.needNav = e.detail.value == '2'
}
}
}
</script>
<style lang="scss">
.main {
padding: 16px;
}
.in {
padding: 8px 12px;
margin-bottom: 12px;
border-radius: 12px;
border: 1px solid rgba(0, 0, 0, .5);
}
.btn {
margin: 12px 0;
}
.mg-r-12 {
margin-right: 12px;
}
.info{
overflow-wrap: break-word;
word-break: break-all;
}
</style>