我正在使用pywebpush 1.4.0库从Django后端推送Web Notifications.我使用的密钥是从https://web-push-codelab.glitch.me/获得的.订阅似乎工作正常.此外,我在Firefox上测试了它,它在那里工作正常.
我在推送Chrome时收到以下错误服务器端:
Push failed: <Response [400]>: <HTML>
<HEAD>
<TITLE>UnauthorizedRegistration</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>UnauthorizedRegistration</H1>
<H2>Error 400</H2>
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我的后端控制3个域名,推送工作正常,即使对于一个域上的Chrome而不是其他域名.我排除了以下可能的问题:
我看到的唯一可能性是Chrome是否允许来自同一后端的不同域上的推送通知.有人知道这样的限制或者可以帮助我解决其他任何指针吗?
注意:我正在为所有三个域使用不同的密钥.
这是我用来推送的代码:
from pywebpush import webpush
webpush(subscription_info,
data,
vapid_private_key=vapid_private_key,
vapid_claims={"sub": "mailto:xyz@example.com"})
Run Code Online (Sandbox Code Playgroud)
subscription_info是订阅用户时收到的json,vapid_private_key是相应的私钥.
我正在使用 PopupWindow 从用户那里获取一些数据。令人惊讶的是,我无法在 EditText 布局中选择文本,这是要求,因为我希望用户能够(从任何地方)复制并粘贴到此处。我已经明确用于android:textIsSelectable="true"我的 EditText。这是我用于 EditText 的属性。
<EditText
android:layout_width="match_parent"
android:layout_height="48dp"
android:id="@+id/emailEdit"
android:inputType="textEmailAddress"
android:textIsSelectable="true"
android:drawableLeft="@drawable/email"
android:drawablePadding="16dp"
android:layout_margin="@dimen/actionable_horizontal_margin"
android:singleLine="true"
android:hint="Email"
/>
Run Code Online (Sandbox Code Playgroud)
我也在设置popup.setFocusable(true)。还有什么需要做的吗?
我的复制粘贴适用于活动和片段中的其他 EditText。
PS 我不想使用自定义剪贴板操作。
BLE扫描面临着棉花糖向前的显着差异,要求设备的位置为ON.从技术上讲,我没有看到为什么需要位置来扫描BLE设备的正当理由.为什么这是由Google完成的?