আমার কাছে একটি বোতাম সহ একটি সহজ পৃষ্ঠা রয়েছে, যা টিপলে, ক্লিপবোর্ডে লেখার জন্য অ্যাসিঙ্ক ক্লিপবোর্ড এপিআই ব্যবহার করে।
<body>
<button type="button" onclick="testClipboard();">
Test Clipboard
</button>
</body>
function testClipboard() {
navigator.clipboard.writeText("Clipboard API Test").then(
v => alert("Success"),
e => alert("Fail\n" + e));
}
এটি ক্রোম এবং ফায়ারফক্স, ডেস্কটপ এবং মোবাইল উভয় ক্ষেত্রেই কাজ করে। তবে অ্যান্ড্রয়েড ওয়েবভিউতে এটি নিম্নলিখিত ত্রুটিটি ছুড়ে ফেলেছে:
NotAllowError: Write permission denied.
আমি অনুভব করেছি WebChromeClient.onPermissionRequest()
যে অনুমতিটি দেওয়ার জন্য আমার ওভাররাইড করা দরকার , তবে আশ্চর্যের onPermissionRequest()
সাথে মনে হয় না যে অনুরোধ করা হয়েছে এবং একই ত্রুটিটি এখনও ছুঁড়ে দেওয়া হয়েছে।
public class WebChromeController extends WebChromeClient {
@Override
public void onPermissionRequest(PermissionRequest request) {
Log.d("myTag", "Permission request");
Log.d("myTag", request.getResources().toString());
request.grant(request.getResources());
}
}
protected void initWebView() {
// ...
myWebView.setWebChromeClient(new WebChromeController());
}
আমি এখনও একই ত্রুটি পেয়েছি:
NotAllowError: Write permission denied.
এছাড়াও লগক্যাট কোনও লগইন হয়নি।
আমার সন্দেহ হয়েছিল যে আমার অ্যান্ড্রয়েড অ্যাপ্লিকেশনটিকে ক্লিপবোর্ডটি অ্যাক্সেস করার জন্য অতিরিক্ত অনুমতি প্রয়োজন, কিন্তু https://developer.android.com/about/versions/10/privacy/changes#clipboard-data অনুসারে , আমার অ্যাপ্লিকেশনটির এতে ফোকাস থাকলে অনুমতি নেওয়া উচিত । প্রকৃতপক্ষে, নিম্নলিখিত কোড কাজ করে:
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("MyLbl", "I have permission");
clipboard.setPrimaryClip(clip);
AndroidManifest.xml
অনুমতি অনুরোধের ক্রিয়াটির অনুমতির প্রয়োজন হলে আমি নিম্নলিখিতটিও ঘোষণা করেছিলাম :
<uses-permission android:name="android.webkit.PermissionRequest" />
এটি কিছুই করেনি।
সুতরাং সম্ভবত এটি অ্যাপ স্তরের অনুমতি নিয়ে কোনও সমস্যা নয়।
কি হচ্ছে?
ওয়েবভিউতে কীভাবে আমি Async ক্লিপবোর্ড এপিআই কল পেতে পারি?
ওএস: অ্যান্ড্রয়েড 10 কিউ
ওয়েবভিউ: বনাম 81.0.4044.111
onPermissionRequest()
আসলে কখনই অনুরোধ করা হয়নি।