iOS14 Widget小组件开发实践3——Widget点击交互
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS14 Widget小组件开发实践3——Widget点击交互相关的知识,希望对你有一定的参考价值。
参考技术A
根据官方文档的描述,点击 Widget 窗口唤起 APP 进行交互指定跳转支持两种方式:
Widget 支持三种显示方式,分别是 systemSmall 、 systemMedium 、 systemLarge ,其中:
1、 systemSmall 只能用 widgetURL 修饰符实现URL传递接收。
2、 systemMedium 、 systemLarge 可以用 Link 或者 widgetUrl 处理
这两种方式的本质都是 URL Schemes
在查找资料的时候,看到网上有的地方说在 AppDelegate 实现 OpenUrl 进行跳转处理:
然而试了之后发现根本没有响应,其实是需要在 SceneDelegate 里面实现跳转处理,因为 ios13 后, APP 的 UI 生命周期交由 SceneDelegate 管理,这里拿到需要的 URL ,就能处理产品需求实现了。
creating-a-widget-extension
https://swiftrocks.com
iOS13 URL Schemes 跳转与传值问题
Android开发工程师文集-1 小时学会Widget小组件开发
前言
大家好,给大家带来Android开发工程师文集-1 小时学会Widget小组件开发
的概述,希望你们喜欢
学会用Widget (小组件)
Widget小组件很方便,很快捷,可以个性化,自己定制,相关功能,可以实时更新最新内容。
- Widget布局,Widget配置,AppWidgetProvider与Configuration Activity
- Android Widget
- xml布局类型:AppWidget Provider
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
//引用的布局文件
android:initialLayout="@layout/widget"
android:minHeight="50dp"
android:minWidth="100dp"
//设置更新时间
android:updatePerioMillis="66666666">
</appwidget-provide>
public class WidgetProvider extends AppWidgetProvider {
@Override
public void onDeleted(Context context,int[] appWidgetIds){
super.onDeleted(context,appWidgetIds);
}
@Override
public void onDisabled(Context context){
super.onDisabled(context);
}
@Override
public void onEnabled(Context context){
super.onEnabled(context);
}
@Override
public void onReceive(Context context,Intent intent){
super.onReceive(context,intent);
}
@Override
public void onUpdate(Context context,AppWidgetManager appWidgetManager,int[] appWidgetIds){
super.onUpdate(context,appWidgetManager,appWidgetIds);
}
}
//TimerService extends Service
Timer timer=new Timer();
timer.shedule(new TimerTask(){
@Override
public void run(){
updateTime();
}
},0,1000);
}
//onDestroy
public void onDestroy(){
super.onDestroy();
timer=null;
}
//updateTime();
private void updateTime(){
String time = simpletime.format(new Date());
}
Widget就是个桌面小组件,有了Widget,我们可以直接在桌面上进行各种操作。
Widget使用
- AndroidManifest中声明AppWidget
- xml中定义AppWidget配置文件
- layout中定义Widget布局文件
- 创建类继承AppWidgetProvider类
//清单文件中
<meta-data
android:name="android.appwidget.provider"
android:resource="@layout/widget_setting"/>
//onUpdate()重点
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.layout_widget);
//Intent intent = new Intent();
Intent intent = new Intent();
intent.setClass(context, TestWidget.class);
intent.setAction(WIDGET_BTN_ACTION);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
remoteViews.setOnClickPendingIntent(R.id.widget_btn, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
}
//清单文件
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/widget_provider"/>
总结
- 本文讲了Android开发工程师文集-1 小时学会Widget小组件开发,如果您还有更好地理解,欢迎沟通
- 定位:分享
Android
&Java
知识点,有兴趣可以继续关注
以上是关于iOS14 Widget小组件开发实践3——Widget点击交互的主要内容,如果未能解决你的问题,请参考以下文章