اذهب إلى المحتوى
  • 0

مشكلة في تطبيق أندرويد web share لا يعمل

ريان أشرف

السؤال

لدي تطبيق اندرويد ويب فيو

قمت بعمل زر مشاركة في التطبيقات html api 

لكن عند الضغط على الزر في التطبيق لا يعمل

ويعمل على جميع المتصفحات إلا التطبيق 

أرجوا حل المشكلة

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

في حال كنت تستعملين: 

Navigator.share()

فهو غير مدعوم من Android WebView ويمكنك التأكد من هنا: mozilla- API Navigator share

لكن يمكن استعمال AndroidShareHandler: بتضمين الإعدادت التالية:

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
mWebView.getSettings().setAppCacheEnabled(false);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAllowContentAccess(true);
mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false);

mWebView.addJavascriptInterface(new JavaScriptShareInterface(), "AndroidShareHandler");

ثم:

//Java:

package com.your.package;

import android.webkit.JavascriptInterface;

public class JavaScriptShareInterface {
    @JavascriptInterface
    public void share(String url) {
        // your share action
    }
}

.

//JavaScript:

shareButton.addEventListener('click', () => {
    window.AndroidShareHandler.share('https://stackoverflow.com');
});

وجدت بعض الشروط لتحقيق ذلك:

  • التطبيق يجب أن يكون مخدم على HTTPS
  • عليك مناداته تبعا لحدث من المستخدم
  • للتأكد من دعم الميزة يمكنك استدعاء الشيفرة التالية:
if (navigator.share !== undefined) {
  navigator.share({
    title: <title of your shared data>,
    url  : <link you want to share>
  });
.then(() => ...))
.catch((error) => ...));
      
__________________________
      
      
  document.querySelector('.share-button').addEventListener('click', function() {
    if(navigator.share) {
      navigator.share({
        title: 'mobiForge: Web Share API'
        text: 'Check out this great article about the Web Share API'
        url: 'https://mobiforge.com/design-development/web-share-api'
      })
      .then(() => console.log('Share complete'))
      .error((error) => console.error('Could not share at this time', error))
    }
  });
      
____________________
      
if (navigator.canShare && navigator.canShare({ files: filesArray })) {
  navigator.share({
    files: filesArray,
    title: 'Event Pictures',
    text: 'Checkout our Event Gallery',
  })
  .then(() => console.log('Share was successful.'))
  .catch((error) => console.log('Sharing failed', error));
} else {
  console.log(`Your system doesn't support sharing files.`);
}

توثيق مفيد: web-share

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...