精华内容
下载资源
问答
  • 关闭自动跳转app
    万次阅读 多人点赞
    2021-05-15 11:29:20

    本文转载自凤凰网

    5月15日消息,昨日,微信开放社区发布了一条关于“微信不再提供小程序打开 App 技术服务”的通知,称因为接口滥用,官方决定关闭小程序打开APP的技术支持。

    微信团队称,微信小程序为开发者提供打开 App 的技术服务,希望通过开发者的合理应用,能为微信用户提供更好的使用体验。但是近期,收到大量用户投诉,在小程序使用过程中,正常使用流程被阻断、被引导跳转至 App 情况,此类情况严重影响了小程序用户体验;并且,相关功能设计容易被用户认为小程序功能支持不完善,实际是开发者滥用接口能力,限制了用户正常使用流程。

    为此,微信团队决定,将于2021年5月19日之后不再提供“小程序打开 App 技术服务”。

    微信团队称,为避免影响小程序线上服务及用户体验,请开发者及时对小程序进行开发调整,避免回收后影响服务流程。

    2

    更多相关内容
  • 我还没有同意打开,他就自动跳转到快手去了,能不能帮我一下?把这个给禁了
  • Android实现H5点击打开app跳转指定界面本文原创,转载请注明出处。欢迎关注我的 简书。安利一波我写的开发框架:MyScFrame...关于下载功能这里不做叙述,这里主要讲述打开app跳转到指定界面的业务如何实现。规...

    Android实现H5点击打开app或跳转指定界面

    本文原创,转载请注明出处。欢迎关注我的 简书。

    安利一波我写的开发框架:MyScFrame喜欢的话就给个Star

    场景

    55489201696a

    H5界面中的入口

    有时候为了方便用户在H5界面上直接下载app或者打开手机app,我们会在H5界面上添加一个按钮,点击按钮可以实现下载或者打开app的功能。关于下载功能这里不做叙述,这里主要讲述打开app并跳转到指定界面的业务如何实现。

    规则

    ://?

    这样写可能大家看不大懂,没事,我们接着往下看。

    关键代码

    1.AndroidManifest中加入intent-filter:

    android:name=".view.login.WelcomeActivity">

    我们要在拥有android:name="android.intent.action.MAIN参数的界面下新增一个intent-filter

    至于为什么要在android:name="android.intent.action.MAIN参数的界面下新增而不是其他界面,这应该不需要多做叙述了吧,想必android:name="android.intent.action.MAIN参数的作用大家都懂。

    2.参数描述:

    android:scheme="android" 用来辨别启动的app

    android:host="h5" 可以当成是一个域名,这边建议使用应用的包名

    android:pathPrefix="/open" 参数路径前缀

    如果你要传递type=1,id=7这两个参数的话,在H5中展示效果应该是:

    打开看看

    3.接收参数:

    Intent intent = getIntent();

    String action = intent.getAction();

    String type= null;

    String id = null;

    if (Intent.ACTION_VIEW.equals(action)) {

    Uri uri = intent.getData();

    if (uri != null) {

    type = uri.getQueryParameter("type");

    id = uri.getQueryParameter("id ");

    }

    }

    4.建议:

    实际开发过程中,如果直接从WelcomeActivity跳转到指定界面的话,返回的时候可能会直接退出应用(我开发的若干个应用中WelcomeActivity界面在跳转其他界面后都会直接关闭。)如果是在指定页面的返回操作中去启动HomeActivity的话,可能效果上不是很理想,因为大多数应用的首页都是相对复杂的,初始化操作都会比较耗时。

    所以,我的个人建议是通过发送EventBus粘性事件给首页,然后在首页里面做相对应的业务跳转逻辑,这样就不影响正常的业务逻辑,而且改动起来也简单一些。

    5.其他参考资料

    欢迎大家留言指出我的不足。

    展开全文
  • 这时候要展示通知,点击通知栏打开App跳转到目标页面,关闭目标页面后需要返回到应用首页,而不是直接推出App 实现思路 App在前台时,弹出Dialog提醒用户有新消息,但是最新版的个推文档接收推送消息是继承...
  • 这些广告也会迅速帮我找到APP下载页面,一不小心还会自动下载。 我已经记不清自己是第几十次删掉拼什么多、唯什么会了。 事已至此,我们注定没法从铺天盖地的广告中逃脱,我知道,你们无非就是惦记我的钱。 但我只...

    烦死了,这已经是我今天第20次莫名其妙地打开淘宝。

    本来,我只是想悄悄看一眼微博摸摸鱼。

    当我熟练地点开微博时,眼睛眨了一下,然后摆在我面前的居然是淘宝。

    7ee5d98de7560aa5122c886005c94083.png

    诶?我刚刚点的淘宝吗?

    可能是手抖点错了吧。

    dfe90c89f702b2b53ae8b63c18873e9a.gif

    退出淘宝,再三确认,锁定微博,打开!

    结果一个开屏广告让我无处下手。

    42d4ec0905913554f6425d9f428009b5.png

    我一个手抖,没点到那角落里的“跳过”

    982a512dd988b07d7d70b9b97183c199.png

    哦豁,手机屏幕一顿闪烁,我又被传送到淘宝。

    看着我面前的淘宝首页,我精神有点恍惚。

    哎,我刚刚是要干嘛来着?

    我又没钱,我来这干嘛?

    abbf2bc775f5784125d7cd2b09f33a3f.png

    算了算了,怪我怪我。

    谁叫我没点对地方。

    退出,再次打开微博。

    这次,我完美地躲过了开屏广告,结果……

    这又是什么鬼?这这都是什么鬼?

    ba3be2ebfa5d8c3f295be497c88b2320.png
    fd4329e706c8a7722b357849f69d44de.png

    我到处都找不到关闭广告的“X”,手指不知所措地一哆嗦。

    屏幕在我面前又是一顿奇妙闪烁。

    然后我再一次来到了淘宝。

    这熟悉的场景,我怎么好像经历过。

    a391505b84d83c70f95df656cf2bf0e0.png

    我突然和蜘蛛洞里的唐僧产生了共鸣。

    可怜我一心向善只想摸鱼,却总被些妖艳贱货勾搭去花钱。

    7858827e5cc01c6fb36fb60c686cba54.png

    凝神静气,第三次打开微博。

    这次,什么广告都休想让我点它。

    然而,我就发了条微博,莫名其妙地又又又来到这个熟悉的地方。

    d3ad560085bb038c3bccee289a12091e.png

    微博:想上我?你得先过了淘宝那关。

    f72d7b8c71d9b54edfa50094624db9c1.png

    淘宝,你看看清楚!

    如果我想上淘宝,我自己有手可以点,而不是被你一天绑来800次!

    5a0f253bc138fe1b688428b5ae0d18c7.png

    淘宝:是吗,我不信。

    8beac7791fb24fe26271d02c5f0be49d.png

    网友说,我们打开淘宝需要耗时1.2秒,但从微博进入淘宝只需要0.08秒。

    c908b2cf14b6d0ea0ca7f9c99d4cbae1.png

    这大概是因为,微博和淘宝之间有个虫洞,在这里,我们可以实现空间穿梭。

    f4724390834ecfcd42957a19d37eef01.png

    这几天大家都是这个状态:想摸个鱼结果到了淘宝

    5ffedf580216e1bf43535a9d98791f89.png

    想追个剧结果到了淘宝

    e335a80f2a3317b68dd2004c402dadb7.png

    想听个歌结果到了淘宝

    2865b9ecbc28ffc73e3e0d6fe9f00068.png

    甚至只是打个字,最后还是到了淘宝。

    5c340672114f7852a814fe11db83dcc6.png

    明白了,如果我想购物,闭着眼睛随便点开一个app就行。

    条条大路通罗马,各个APP通淘宝。

    互联网的尽头是淘宝,宇宙的终极答案就是淘宝。

    不光是淘宝,这两天我的手机也是疯了,经常在京东、淘宝、拼多多等各种软件中反复横跳。

    也有不少人在横跳中直接迷路:

    74c1235e2dc6dc0729a54e920c97d1c3.png

    当我打开视频APP像追追剧,一个片头曲刚放完,摆在我面前的已经是拼多多热销榜。

    当我点开某乎想看看大家新编的故事,五分钟之后,我突然发现我在逛京东。

    如果我有罪,请让法律来制裁我,而不是让我在各种购物软件中左右横跳。

    这些软件一边提醒我是个穷鬼,一边还想榨干穷鬼身上的最后一分钱。

    3ddf1b21702c32e8f74e8b511b0e071a.png

    众所周知,广告其实就是把我们的时间和注意力明码标价卖给商家。

    说句良心话,我们也不是不能被卖。

    而且,我们也习惯被卖了。

    毕竟,消费者在广告与广告商的生意中,也没什么发言权。

    但是吧,有些广告,实在是欺人太甚

    比如,最令人反感却又最挣钱的开屏广告

    开屏就是你每次进入APP时第一个显示的画面。

    通常是APP的logo或最具标志性的东西:比如微信的这颗地球。

    de04be59aece24c5a4e84dd3964b5371.png

    开屏是用户使用APP的第一眼,对于APP来说至关重要。

    也因此,开屏也成为广告商最喜欢的地方。

    但是,我这样一个普通软件使用者来说,我愿意把我一辈子的脏话送给开屏广告。

    开屏广告的用户体验之差,相当于你收拾得清清爽爽出门,刚推开门就有人给你当头一棒,还不给我拒绝的机会。

    因为开屏广告就是强制性的,你根本没法屏蔽它。

    图片就算了,有的开屏广告还是动态的。

    在花花绿绿闪烁的画面中,根本找不到那个小小的关闭按钮。

    e9821de3597122bd76ba88ceedddfa20.png

    找不到就“关闭”就算了,还非常容易一不小心碰到其他地方,顿时跳转到广告页面。

    而且,你每次打开软件,都会出现开屏,躲都躲不掉。

    想想看,一个开屏10秒钟,如果你一天打开6次软件,1分钟没了。

    我宝贵摸鱼时间,就这样被占用了1分钟。

    40个人,人人1分钟,1节课没了(班主任口吻

    而一个热门APP的用户动辄百万千万,我们保守一点,按100万算 ,加起来就是1666.6小时,合694天。

    如果浪费时间有罪,请判这些APP死刑。

    02db0362b48521bea92c8c55563eecae.png

    豆瓣上甚至有人组成“软件受害者”小组,痛斥将自己的开屏卖出去做广告的APP。

    a9599cca05b3171dcf611c5f747a3c5a.png

    还恨屋及乌地不待见那些买APP开屏广告的商家和代言人。

    3e445740926c26fbb7532c06a933b293.png

    多少手机生产者冒着猝死风险加班到深夜,多少程序员们熬掉了自己的最后一根头发,就为了能让手机的运行速度提高1%秒,让APP启动速度缩短0.01秒。

    好家伙,你直接一个开屏广告,10秒。

    说实话吧,开屏广告是不是你们APP开发者们偷懒不做优化的遮羞布?

    由于开屏广告的用户体验极差,在不少产品经理眼里,不在开屏上做广告是APP的最后的良心底线。

    721a2a1ec7f9c65137b2f9e11d5fecd3.png

    所以一般来说,APP都不会在开屏上做广告。

    除非,广告商给得太多……

    9d010ee9c8c37bfd9ebc440fb01323e1.png

    除了开屏之外,不小心碰到就会穿越虫洞到其他软件的跳转链接,以及像苍蝇一样怎么赶也赶不走的弹窗广告也很让人讨厌。

    卸载软件,也不行。

    哪怕我一气之下,将这些购物软件删个干净。这些广告也会迅速帮我找到APP下载页面,一不小心还会自动下载。

    我已经记不清自己是第几十次删掉拼什么多、唯什么会了。

    21d2b68d6cff5040c13e6c4393a27d2e.png

    事已至此,我们注定没法从铺天盖地的广告中逃脱,我知道,你们无非就是惦记我的钱。

    但我只希望自己作为韭菜,能稍微得到一点尊重,这很难吗?

    有一个心理学概念叫做暗示,如果有人在你耳边不断含蓄地重复一个指令,我们就会在不自觉中,接受这个指令并且按照指令去做。

    这些令人讨厌的广告也是这样。

    在我第26781次跳转淘宝之后,我还是下单买了那双鞋。

    我也很难说清楚,自己究竟是真的想买,还是在这些无处不在的广告里,中了商家的花钱魔咒。

    哼,果然,我变成穷鬼,都是你们的阴谋。

    展开全文
  • 目录:BootLoader和App1和App2三个程序之间的跳转1 、说明:2、跳转程序:3、BootLoader程序(1)配置地址和大小4、App1程序(1)程序(2)配置地址和大小(3)程序现象5、APP2程序(1)程序(2)配置地址和大小(3...

    BootLoader和App1和App2三个程序之间的跳转

    1 、说明:

    三个程序是
    (1)BootLoader 亮两个LED灯,1秒后进入App1.
    (2)app1	LED1闪烁,长按按键后进入App2.
    (3)app2 LED2闪烁,长按按键后进入App1.
    

    2、跳转程序:

    三个程序的公共部分,包括boot和LED程序

    //boot.c
    #include "main.h"
    #include "boot.h"
    
    /* 开关全局中断的宏 */
    #define ENABLE_INT()	__set_PRIMASK(0)	/* 使能全局中断 */
    #define DISABLE_INT()	__set_PRIMASK(1)	/* 禁止全局中断 */
    
    #if 1
    
    //uint32_t ApplicationAddress = 0x08000000+0x2800;
    typedef  void (*pFunction)(void);
    pFunction Jump_To_Application;//做为全局变量,函数内局部时跳转失败。
    
    void jumpToApplication(uint32_t addr)
    {
    
    	/* 关闭全局中断 */
    	DISABLE_INT();
    
    	/* 关闭滴答定时器,复位到默认值 */
    	SysTick->CTRL = 0;
    	SysTick->LOAD = 0;
    	SysTick->VAL = 0;
    
    	/* 设置所有时钟到默认状态, 使用 HSI 时钟 */
    	LL_RCC_DeInit();
    
    	/* 关闭所有中断,清除所有中断挂起标志 */
    	for (uint8_t i = 0; i < 8; i++)
    	{
    		NVIC->ICER[i]=0xFFFFFFFF;
    		NVIC->ICPR[i]=0xFFFFFFFF;
    	}
    
    	/* 使能全局中断 */
    	ENABLE_INT();
    
    
    	uint32_t JumpAddress;
    //	/* 跳转,首地址是 MSP,地址+4 是复位中断服务程序地址 */
    	JumpAddress = *(__IO uint32_t *)(addr + 4);
    	Jump_To_Application = (pFunction)JumpAddress;
    
    	/* 设置主堆栈指针 */
    	__set_MSP(*(__IO uint32_t *)addr);
    	
    
    	Jump_To_Application();
    
    	/* 跳转成功的话,不会执行到这里,用户可以在这里添加代码 */
    	while (1)
    	{
    
    	}
    }
    #endif
    
    
    //boot.h
    #ifndef _BOOT_H_
    #define _BOOT_H_
    
    void jumpToApplication(uint32_t addr);
    
    #endif
    

    LED部分:

    #define GPIO_PORT_LED1  GPIOB
    #define GPIO_PIN_LED1	LL_GPIO_PIN_3
    
    #define GPIO_PORT_LED2  GPIOD
    #define GPIO_PIN_LED2	LL_GPIO_PIN_2
    
    #ifndef __BSP_LED_H
    #define __BSP_LED_H
    
    /* 供外部调用的函数声明 */
    void bsp_InitLed(void);
    void bsp_LedOn(uint8_t _no);
    void bsp_LedOff(uint8_t _no);
    void bsp_LedToggle(uint8_t _no);
    uint8_t bsp_IsLedOn(uint8_t _no);
    
    #endif
    

    3、BootLoader程序

    /* USER CODE BEGIN Header */
    /**
      ******************************************************************************
      * @file           : main.c
      * @brief          : Main program body
      ******************************************************************************
      * @attention
      *
      * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
      * All rights reserved.</center></h2>
      *
      * This software component is licensed by ST under BSD 3-Clause license,
      * the "License"; You may not use this file except in compliance with the
      * License. You may obtain a copy of the License at:
      *                        opensource.org/licenses/BSD-3-Clause
      *
      ******************************************************************************
      */
    /* USER CODE END Header */
    
    /* Includes ------------------------------------------------------------------*/
    #include "main.h"
    #include "usart.h"
    #include "gpio.h"
    
    /* Private includes ----------------------------------------------------------*/
    /* USER CODE BEGIN Includes */
    #include "bsp_led.h"
    #include "bsp_key.h"
    #include "boot.h"
    
    /* USER CODE END Includes */
    
    /* Private typedef -----------------------------------------------------------*/
    /* USER CODE BEGIN PTD */
    	uint8_t Itimer_f=0;
    	uint8_t Itimer=0;
    	static uint8_t s_count = 0;
    #define BOOT_APP	1
    /* USER CODE END PTD */
    
    /* Private define ------------------------------------------------------------*/
    /* USER CODE BEGIN PD */
    /* USER CODE END PD */
    
    /* Private macro -------------------------------------------------------------*/
    /* USER CODE BEGIN PM */
    
    /* USER CODE END PM */
    
    /* Private variables ---------------------------------------------------------*/
    
    /* USER CODE BEGIN PV */
    
    /* USER CODE END PV */
    
    /* Private function prototypes -----------------------------------------------*/
    void SystemClock_Config(void);
    /* USER CODE BEGIN PFP */
    void sIncTick();
    
    /* USER CODE END PFP */
    
    /* Private user code ---------------------------------------------------------*/
    /* USER CODE BEGIN 0 */
    void KeyProc();
    
    
    /* USER CODE END 0 */
    
    /**
      * @brief  The application entry point.
      * @retval int
      */
    int main(void)
    {
      /* USER CODE BEGIN 1 */
    
      /* USER CODE END 1 */
    
      /* MCU Configuration--------------------------------------------------------*/
    
      /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
      HAL_Init();
    
      /* USER CODE BEGIN Init */
    
      /* USER CODE END Init */
    
      /* Configure the system clock */
      SystemClock_Config();
    
      /* USER CODE BEGIN SysInit */
    
      /* USER CODE END SysInit */
    
      /* Initialize all configured peripherals */
      MX_GPIO_Init();
      MX_USART2_UART_Init();
      /* USER CODE BEGIN 2 */
    #if (!BOOT_APP)
    	bsp_Init();
    #endif
    
    //	SerialPutString("\r\n======================================================================");
    //	SerialPutString("\r\n=              boot                								  =");
    //	SerialPutString("\r\n=                                                                    =");
    //	SerialPutString("\r\n======================================================================");
    //	SerialPutString("\r\n\r\n");
    
      /* USER CODE END 2 */
    
      /* Infinite loop */
      /* USER CODE BEGIN WHILE */
    	while (1)
    	{
    #if BOOT_APP
    
    		HAL_Delay(1000);
    		jumpToApplication((uint32_t) 0x08002800);
    #else
        /* USER CODE END WHILE */
    
        /* USER CODE BEGIN 3 */
    
    		KeyProc();
    		if(READ_BIT(Itimer_f,1<<0))
    		{
    			CLEAR_BIT(Itimer_f,1<<0);
    
    			if(++s_count %10 !=0) continue;
    			if(s_count ==250) s_count = 0;
    			bsp_KeyScan();
    
    			if (++Itimer % 50 !=0)continue;
    			if (Itimer == 250 )	
    			{
    				Itimer=0;
    				
    				// while(1);
    			}	
    			
    			bsp_LedToggle(2);
    //			bsp_LedToggle(1);
    			
    		}
    #endif
    
    
    	}
      /* USER CODE END 3 */
    }
    
    /**
      * @brief System Clock Configuration
      * @retval None
      */
    void SystemClock_Config(void)
    {
      LL_FLASH_SetLatency(LL_FLASH_LATENCY_2);
    
       if(LL_FLASH_GetLatency() != LL_FLASH_LATENCY_2)
      {
        Error_Handler();  
      }
      LL_RCC_HSE_Enable();
    
       /* Wait till HSE is ready */
      while(LL_RCC_HSE_IsReady() != 1)
      {
        
      }
      LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSE_DIV_1, LL_RCC_PLL_MUL_9);
      LL_RCC_PLL_Enable();
    
       /* Wait till PLL is ready */
      while(LL_RCC_PLL_IsReady() != 1)
      {
        
      }
      LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
      LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_2);
      LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1);
      LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
    
       /* Wait till System clock is ready */
      while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
      {
      
      }
      LL_SetSystemCoreClock(72000000);
    
       /* Update the time base */
      if (HAL_InitTick (TICK_INT_PRIORITY) != HAL_OK)
      {
        Error_Handler();  
      };
    }
    
    /* USER CODE BEGIN 4 */
    
    void sIncTick()
    {
    	SET_BIT(Itimer_f,1<<0);
    
    }
    void KeyProc()
    {
    	uint8_t ucKeyCode; /* 按键代码 */
    	int GetKey;
    
    	/* 按键滤波和检测由后台systick中断服务程序实现,我们只要调用bsp_GetKey读取键即可 */
    		ucKeyCode = bsp_GetKey();	/* 读取键 , 无键按下时返  KEY_NONE = 0 */
    		if (ucKeyCode != KEY_NONE)
    		{
    			switch (ucKeyCode)
    			{
    				case KEY_DOWN_K1:			/* K1键按  */
    					
    					
    					break;
    				case KEY_UP_K1:
    				{
    					
    				}break;
    				case KEY_LONG_K1:
    				{
    					
    				}break;
    				default:
    					/* 其它的键值不处理 */
    					break;
    			}
    		}
    
    }
    
    
    
    /* USER CODE END 4 */
    
    /**
      * @brief  This function is executed in case of error occurrence.
      * @retval None
      */
    void Error_Handler(void)
    {
      /* USER CODE BEGIN Error_Handler_Debug */
      /* User can add his own implementation to report the HAL error return state */
    
      /* USER CODE END Error_Handler_Debug */
    }
    
    #ifdef  USE_FULL_ASSERT
    /**
      * @brief  Reports the name of the source file and the source line number
      *         where the assert_param error has occurred.
      * @param  file: pointer to the source file name
      * @param  line: assert_param error line source number
      * @retval None
      */
    void assert_failed(uint8_t *file, uint32_t line)
    { 
      /* USER CODE BEGIN 6 */
      /* User can add his own implementation to report the file name and line number,
         tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
      /* USER CODE END 6 */
    }
    #endif /* USE_FULL_ASSERT */
    
    /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
    
    

    有用的只有两行

    在这里插入图片描述

    (1)配置地址和大小

    占用flash大小为10k,也可不用配置
    在这里插入图片描述

    4、App1程序

    (1)程序

    程序和BootLoader相同,
    复制一份BootLoader程序,需要改的是
    #define BOOT_APP	0
    
    在main里最前面加入中断向量表,就是APP1的开始地址:
    SCB->VTOR =0x2800;
    
    在按键长按里加入跳转地址:
    jumpToApplication(0x08002800+0xD800);//这里是APP2的地址
    

    如下图:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    (2)配置地址和大小

    开始地址是0x08002800 大小是0xD800

    在这里插入图片描述

    连接器里面要勾选左边,不然上面的地址和大小就不起用了,就会按照右边填写的。

    不勾选也行,把上面那步的数据填到右边。

    在这里插入图片描述

    擦除,要扇区擦除,

    在这里插入图片描述
    调试在.S 程序开头打一个断点,然后运行,能停在这里说明跳转成功:

    在这里插入图片描述

    向上翻,可以看从0x2800开始放的是向量表:

    在这里插入图片描述

    可以看到地址0x2800以前是全是0xFFFFFFFF,这是BootLoader没用到的剩余空间,分配了10k的空间其实只用了一半多。

    (3)程序现象

    全速运行,蓝色LED2闪烁。

    5、APP2程序

    (1)程序

    程序和APP1相同,
    复制一份app1程序,需要改的是
    在main里最前面的中断向量表,就是App2的开始地址:
    SCB->VTOR =0X2800+0xD800;
    
    在按键长按里加入跳转地址:
    jumpToApplication(0x08002800);//这里是APP1的地址和BootLoader里面相同
    

    改动部分如下图所示:

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    (2)配置地址和大小

    开始地址是0X2800+0xD800=0x10000,即从0x08010000开始,剩下的空间大小全部给APP2。

    在这里插入图片描述

    其它的连接器,擦除方法和App1相同。

    调试,发现程序一直在运行,打开汇编窗口,可以看到在0x08010000开始是向量表了。

    在这里插入图片描述

    长按按键程序停在断点处,说明跳转成功,继续全速运行绿色LED1闪烁。

    在这里插入图片描述

    (3)程序现象

    断电,上电,全速运行。蓝色LED2闪烁,长按按键绿色LED1闪烁。再按一次蓝色LED2闪烁,如此反复。

    6、综述

    三个程序,每个里面都要有不一样的开始地、程序所占空间大小、中断向量表,跳转地址。

    上电顺序是BootLoader,App1,按键App,按键App2。

    也可以改一下地址,按照App1,按键BootLoader,App2的顺序。

    也可以很多个程序一起玩。

    可以用STM32CubeProgrammer来烧写hex文件或者bin文件,hex文件里面带有地址,开始地址这里不用填写,bin文件需要填写地址。

    烧写无顺序。

    在这里插入图片描述

    展开全文
  • Chrome解决http自动跳转至https的问题

    千次阅读 2019-11-11 10:13:48
    当使用http协议去访问该服务时,chrome总会自动跳转到https协议上,导致跨域无法正常访问服务 解决方案 地址栏输入 chrome://net-internals/#hsts 找到底部Delete domain security policies一栏,输入想处理...
  • 关于STM32之IAP与APP跳转重点

    千次阅读 2021-09-11 09:25:59
    大家会很好奇IAP和APP是如何实现跳转的,如果你是需要完成这个任务的话,肯定已经了解了不少的知识,我就不重复别人的博客进行分析了,话不多说,直接来吧。 首先,如果你是使用IAR软件的话,你一定要去看看自己生成...
  • 1、Uni-App 启动页和引导页介绍2、Uni-App 简单引导页示例3、Uni-App 视频引导页示例Uni-App 启动页和引导页介绍Uni-App 启动页和引导页是两个不同的东西,启动页是 Uni-App 自带的,不可去掉,只能修改相关配置。...
  • 如何禁止chrome自动跳转https

    千次阅读 2019-10-11 19:58:06
    请在chrome的地址栏输入: chrome://net-internals/#hsts 输入要http访问的域名然后点击逗delete地按钮即可完成配置。删除的域名不能带有http和https
  • 我们接入一些三方sdk 微信,京东,淘宝的时候会发现,打开了三方的app后,对方有个返回商家或者返回app 的功能,这个是怎么实现的呢,这里先用微信来说 接入微信支付的都知道,集成微信支付时必须在我们的包名下...
  • APP跳转到支付宝转账界面

    万次阅读 多人点赞 2019-01-05 17:24:15
    本文章将对APP内部直接跳转到某账号的支付宝转账界面进行详细阐述。这种方法适用于个人开发,仅完成了跳转支付,没有支付回调的信息。本文在跳转至支付宝时会弹出对话框以确认用户是否误操作。 1.你需要先获取转账...
  • 今天做了个网页,要在网页里设置一个iframe,然后套用其他的网站的时候,出现了莫名其妙的问题,我的网页居然会强制自动跳转到这个网页上。 经过网上的资料搜索,发现问题的原因是由于嵌入的页面中有以下代码: ...
  • 各大手机厂商不断的堆配置让手机性能越来越高处理速度更快,但是启动5秒的广告立马给你安排的明明白白,右上角的“跳过”按钮不好点暂且不说有时候还是个陷阱直接刷刷装上垃圾APP应用了,对于这些在手机内肆意妄为的...
  • 今天来一个ViewPager相关的的小程序:自动轮播+页面跳转+判断是否第一次进入! (如果是第一次进入则显示欢迎页,否则直接进入到主页)话不多说,先来张效果图:要实现这个小程序,先来看一下具体是如何构成的:那么,...
  • http://itindex.net/blog/2014/11/07/1415353560000.html点击浏览器...各个项目含义如下所示:scheme:判别启动的App。 ※详细后述host:适当记述path:传值时必须的key ※没有也可以query:获取值的Key和Value ※没...
  • 我们在用 uni-app 开发前端应用时,页面跳转是必不可少的。页面跳转主要包含应用内跳转(站内跳转)和应用外跳转(外部跳转)。
  • 秒后自动跳转到老版本</p> <!-- js部分 --> function countDown(secs, url) { // secs--设置倒计时秒数,url--要跳转的链接 var time = document.getElementById("time") time.innerHTML = secs // ...
  • app里面,有时候有跳转到手机浏览器的网页中这样的需求,那么前端用cordova打包的app,怎么实现跳转呢? cordova有个插件cordova-plugin-inappbrowser,官方文档:...
  • 选中链接「右键」-> 「Open Link」
  • uni-app导航跳转初始

    2020-11-26 10:09:01
    uni-app导航跳转 导航(navigator)是个标签 <navigator url="路径"></navigator> //普通跳转只能调到普通页面 <navigator url="/" open-type="switchTab"></navigator> //加上open-type=...
  • 可以参考:微信打开网址添加在浏览器中打开提示和微信扫描打开APP下载链接提示代码优化。 其实原来很简单,就是判断当前是在微信内置浏览器中,然后将默认隐藏的提示层显示出来。 案例如下: 一、遮罩提示: ...
  • 笔者最近接到很多粉丝的留言,需要探讨新浪微博app如何去跳转微信小程序,并且直接打开小程序的指定页面。 笔者去微博和微信开放平台查询后总结了以下方式: 1.先去开放平台注册一个后台账号, ...
  • 声明 : 这个谨慎使用 特别是有后退的就不要使用这个了 这个是关闭所有页面 并跳转到指定的目的页面。切记 有调用后退api 的就不用这个了 否则后果自负。
  • <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">...自动跳转</ti...
  • 打开 C:\Users\Administrator\AppData\Local\微信开发者工具\User Data文件夹, 删除User Data 下的所有文件夹即可,然后重新打开就可以了;要先关闭开发工具才可以删除 百度解释: HSTS 的工作机制可描述如下:...
  • uni-app开发小程序无法跳转页面问题

    千次阅读 2021-11-12 16:05:58
    在开发小程序的时候,测试修改信息,频繁授权登录后页面无法跳转 在查阅相关资料后,发现小程序使用 uni.navigateTo 跳转不会关闭当前页面,...后对无关页面使用uni.redirectTo 跳转页面,跳转前会关闭当前页面 ...
  • 页面跳转一、功能介绍打开APP先进入欢迎页面,2秒钟后自动进入主页面二、项目结构分析三、详细代码1、WelcomeActivity.javapackage com.xingyun.shoopingmail4;import android.app.Activity;import android.content....
  • 1、设置VECT_TAB_OFFSET,在system_stm32fxxx.c中。 在keil中这样设置,可以通过target的设置自动设置VECT_TAB_OFFSET大小。 extern int Image$$ER_IROM1$$Base;...3、bootloader在跳转关闭总中断,app中忘记
  • 定时跳转 if(IAP_JUMP_APP_Count > 30) { IAP_JUMP_APP_Count = 0; iap_load_app(FLASH_APP1_ADDR);//执行FLASH APP代码 } APP: NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x10000); __enable_irq(); if(APP2IA

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,532
精华内容 15,412
关键字:

关闭自动跳转app