原生app 打开uni小程序 传参问题

这篇具有很好参考价值的文章主要介绍了原生app 打开uni小程序 传参问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近要在一个原生app的基础上开发新功能,  新功能和原app没有太多交集, 考虑到原生app开发复杂,工期较长, 决定在原生app的基础上整合uni小程序, 使用uniapp开发新功能, 在整合的过程中遇到了几个问题, 这里记录一下,

一.  uni小程序的文档在3.5.3这个版本, 目前为止,他的文档还没有随之修改,很多接口对不上, 第一次整合的时候遇到打开小程序闪退的问题, 也没有具体的报错信息, 这就很难调试,  

解决问题的方法是

根据他自带的demo进行调试,

1.修改 targetSdkVersion<30

2. 将proguard.cfg和自己原有的文件整合,  

3. AndroidManifest.xml 别忘添加如下的activity

//uniapp 使用
<activity
        android:name="io.dcloud.PandoraEntryActivity"
        android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard"
        android:hardwareAccelerated="true"
        android:launchMode="singleTask"
        android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"
        android:screenOrientation="user"
        android:theme="@style/DCloudTheme"
        android:windowSoftInputMode="adjustResize">

    <intent-filter>

        <category android:name="android.intent.category.DEFAULT" />

        <category android:name="android.intent.category.BROWSABLE" />

        <action android:name="android.intent.action.VIEW" />

        <data android:scheme="h56131bcf" />
    </intent-filter>
</activity>

二.  原生app,跳转到小程序传参问题,  不能跳转到tabBar页面这个问题到目前为止, 一直还是没有修复, 那我就尝试使用中转页面获取参数,  不知道是这个3.5.3版本的问题还是怎么回事, 在浏览器可以获取到中转页的数据, 在原生app跳转就不行, 于是采用了uniapp向宿主app发送消息事件获取token参数的方案, 具体代码如下

宿主原生App

 DCUniMPSDK.getInstance().setOnUniMPEventCallBack { appid, event, data, callback ->
      Log.i("cs", "onUniMPEventReceive    event=$event")
          //回传数据给小程序
          callback.invoke(O2SDKManager.instance().cQqrwToken)
      }
      val uniMPOpenConfiguration = UniMPOpenConfiguration()
      uniMPOpenConfiguration.redirectPath = "pages/splash/splash"
      DCUniMPSDK.getInstance().openUniMP(applicationContext, "__UNI__1A588F9", uniMPOpenConfiguration)

uni小程序

<template>
	<view class="uni-container">
		这是欢迎页面, debug测试时显示000<br />
		qqrwToken:{{token}}
	</view>
</template>
<script>
	// TODO 修复Android v3 加载过慢问题
	// #ifdef APP-PLUS
	var domModule = weex.requireModule('dom');
	domModule.addRule('fontFace', {
		'fontFamily': "uniicons",
		'src': "url('/static/uni.ttf')"
	});
	// #endif
	export default {
		data() {
			return {
				token:''
			}
		},
		onLoad(e) {
			var self = this;
			uni.sendNativeEvent('unimp-event', {
			    msg: 'unimp message!!!'
			}, ret => {
			    self.token = '' + ret;
				self.setStorage(self.token)
			})
		},
		methods: {
			setStorage(token){
				setTimeout(()=>{
					uni.setStorage({
						key: "token",
						data: token,
						success: function(data){
							uni.switchTab({
								url: '/pages/tabBar/component/component'
							});
						}
					});
                //延时一会我要测试下到底传过去的参数是什么
				},2000)
			}
		}
	}
</script>

<style>
	@import '../../common/uni-nvue.css';
</style>

获取到token之后就可以跳转到tabBar页面了,   我觉得这还算是一个坑的, 

三. 关于wgt的解压和替换

        每次打包wgt, 然后改成zip, 解压之后替换原生app里面的文件, 感觉还是很繁琐, 我在调试首页传参这个问题的时候就因为这个感到很烦躁, 于是写了一个建议脚本, 自动替换原文件文章来源地址https://www.toymoban.com/news/detail-492809.html

@echo off
echo start working
echo clean folder
del /f /s /q D:\workspace_android_try\o2oa-android\app\assets\apps\__UNI__1A588F9\www\*.*
rd /q /s D:\workspace_android_try\o2oa-android\app\assets\apps\__UNI__1A588F9\www\
md D:\workspace_android_try\o2oa-android\app\assets\apps\__UNI__1A588F9\www\
echo open folder
start explorer "D:\workspace_android_try\o2oa-android\app\assets\apps\__UNI__1A588F9\www"

xcopy D:\workspace_uniapp\qqrwHe\unpackage\release\__UNI__1A588F9.wgt  D:\workspace_android_try\o2oa-android\app\assets\apps\__UNI__1A588F9\www\
cd /d "D:\workspace_android_try\o2oa-android\app\assets\apps\__UNI__1A588F9\www"
ren __UNI__1A588F9.wgt __UNI__1A588F9.zip
"C:\Program Files\WinRAR\WinRAR.exe" X  __UNI__1A588F9.zip
del /f /s /q D:\workspace_android_try\o2oa-android\app\assets\apps\__UNI__1A588F9\www\__UNI__1A588F9.zip

pause

到了这里,关于原生app 打开uni小程序 传参问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序修改原生组件样式(uni-app)

    微信小程序修改原生组件样式 全局修改,直接将修改的样式写在全局的样式文件中; 特殊情况:修改swiper指示点样式时,需要包裹在swiper的样式选择器下才生效。 直接将下列代码放在全局样式中是不会生效的,需要加上swiper组件的元素选择器或swiper组件的其他样式名也可。

    2024年02月05日
    浏览(76)
  • uni-app嵌入微信小程序原生代码

    使用uni-app有时需要用到微信小程序原生代码 解析: uni-app项目结构跟原生小程序的项目结构有着不一致的区别,如果说开发过程中必须要使用原生代码,就需要把原生代码作为组件的方式在uni-app项目中引入使用 官网为了应对这一个需求,就给出了以下方法,供开发者实现 wxcompone

    2024年02月05日
    浏览(71)
  • uni-app微信小程序打开第三方地图

    小程序中有个按钮点击以后会调用手机中第三方地图进行导航。 参数 位置信息 经度 与纬度。 原本以为一切顺利,结果在微信开发者工具中显示如下: location参数格式错误,请正确填写 经过测试发现,因为我在微信小程序中使用,所以默认会使用腾讯地图来显示。 而我的经

    2024年02月06日
    浏览(83)
  • uni-app小程序:文件下载打开文件方法苹果安卓都适用

    encodeURI函数将URI中的 特殊字符转换为它们的UTF-8编码表示形式 ,以确保它们在传输和处理过程中不会被误解或错误解析。这样可以避免因特殊字符导致的错误或安全问题。 源码: 运行效果: 点击文件1就可以下载打开文件预览了

    2024年01月21日
    浏览(53)
  • uni-app 使用webview加载H5打开微信小程序

    最近公司有个需求要求在app里点击一个功能打开小程序,并且关闭小程序回到app,模仿平安保险app。 毕竟我也是刚学习uni-app,找了很多资料,找到了一个天天外链的网站可以生成一个小程序的链接,使用uni的webview去加载这个链接,很好,需求满足,但是收费,那能不能自己

    2023年04月18日
    浏览(74)
  • 微信小程序原生框架转Uni-App:你需要知道的一切

    博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客👦🏻 《java 面试题大全》 🍩惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕🍭 《MYSQL从入门到精通》数据库是开发者必会基础之一~ 🪁 吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄

    2024年02月09日
    浏览(61)
  • 【IOS-Debug】uniapp小程序打开APP原生页面

    前言 APP里面的uniapp小程序要接入微信支付,但是支付的调起为实现统一管理是由APP原生调起支付,不是每个小程序自己实现。所以,支付完成的页面也是写在APP宿主原生页面的,涉及到小程序打开原生页面的跳转方式。 页面跳转方式 众所周知,常见的IOS页面跳转有 present 和

    2024年02月02日
    浏览(36)
  • uni-app使用uView打开弹出层后输入框聚焦时placeholder错位问题

    这里就不放效果了,大概意思就是在使用uView的popus时,在底部弹出后,如果弹窗中的输入框会造成一瞬间的placeholder文字错位,这个问题的主要是因为uView安全区适配导致 uView相关文档 popus源码 它会自动判断在并且在IPhone X等机型的时候,给元素加上一个适当底部内边距,从

    2024年02月19日
    浏览(48)
  • 【消息中间件】原生PHP对接Uni H5、APP、微信小程序实时通讯消息服务

    【uniapp】实现买定离手小游戏 Mqtt不同环境问题太多,新手可以看下 《【MQTT】Esp32数据上传采集:最新mqtt插件(支持掉线、真机调试错误等问题》 《一篇就够:uniapp-Mqtt系列问题详细攻略(解决掉线、真机调试错误等问题)》 《解决微信小程序MQTT真机连接问题与合法域名配置

    2024年02月14日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包